]> Kevux Git Server - fll/commitdiff
Update: Add man pages for most or all FLL functions.
authorKevin Day <kevin@kevux.org>
Sun, 2 Jul 2023 02:38:33 +0000 (21:38 -0500)
committerKevin Day <kevin@kevux.org>
Sun, 2 Jul 2023 02:54:34 +0000 (21:54 -0500)
This is a huge amount of work.
I attempted to use several tools and doxygen had the best results.
The doxygen did a tolerable job but did not do a good job.
In fact, the man page generation of doxygen is horrible.
I instead used doxygen to create XML and then use a tool called doxy2man.
The end result is a barely tolerable man page.

I then had to go through and mass change the files due to problems.
I've brute-force stripped out a lot of messed up parts rather than try to address them.
Some of the data I did manually add or tweak and this task is incredibly tedius.

I observed that a lot of the documentation regarding function returns never completely made it into the man pages.
This means that the man pages are incomplete.
This is, however, better than nothing.

In the long term I can see myself writing my own parser (which makes me cringe).
I believe that I need to create a man page alternative program that uses the FSS formats for a more sane and more readable format.
This is not happening now or any time soon.

I specifically used doxywizard for the doxygen and the following is the configuration settings with the comments removed.

DOXYFILE_ENCODING      = UTF-8
PROJECT_NAME           = FLL
PROJECT_NUMBER         = 0.6.6
PROJECT_BRIEF          =
PROJECT_LOGO           =
OUTPUT_DIRECTORY       = generated
CREATE_SUBDIRS         = NO
ALLOW_UNICODE_NAMES    = NO
OUTPUT_LANGUAGE        = English
BRIEF_MEMBER_DESC      = YES
REPEAT_BRIEF           = YES
ABBREVIATE_BRIEF       = "The $name class" \
                         "The $name widget" \
                         "The $name file" \
                         is \
                         provides \
                         specifies \
                         contains \
                         represents \
                         a \
                         an \
                         the
ALWAYS_DETAILED_SEC    = NO
INLINE_INHERITED_MEMB  = NO
FULL_PATH_NAMES        = YES
STRIP_FROM_PATH        =
STRIP_FROM_INC_PATH    =
SHORT_NAMES            = NO
JAVADOC_AUTOBRIEF      = NO
QT_AUTOBRIEF           = NO
MULTILINE_CPP_IS_BRIEF = NO
INHERIT_DOCS           = NO
SEPARATE_MEMBER_PAGES  = NO
TAB_SIZE               = 4
ALIASES                =
TCL_SUBST              =
OPTIMIZE_OUTPUT_FOR_C  = YES
OPTIMIZE_OUTPUT_JAVA   = NO
OPTIMIZE_FOR_FORTRAN   = NO
OPTIMIZE_OUTPUT_VHDL   = NO
EXTENSION_MAPPING      =
MARKDOWN_SUPPORT       = YES
TOC_INCLUDE_HEADINGS   = 0
AUTOLINK_SUPPORT       = YES
BUILTIN_STL_SUPPORT    = NO
CPP_CLI_SUPPORT        = NO
SIP_SUPPORT            = NO
IDL_PROPERTY_SUPPORT   = YES
DISTRIBUTE_GROUP_DOC   = NO
GROUP_NESTED_COMPOUNDS = NO
SUBGROUPING            = YES
INLINE_GROUPED_CLASSES = NO
INLINE_SIMPLE_STRUCTS  = NO
TYPEDEF_HIDES_STRUCT   = NO
LOOKUP_CACHE_SIZE      = 0
EXTRACT_ALL            = YES
EXTRACT_PRIVATE        = NO
EXTRACT_PACKAGE        = NO
EXTRACT_STATIC         = NO
EXTRACT_LOCAL_CLASSES  = YES
EXTRACT_LOCAL_METHODS  = NO
EXTRACT_ANON_NSPACES   = NO
HIDE_UNDOC_MEMBERS     = NO
HIDE_UNDOC_CLASSES     = NO
HIDE_FRIEND_COMPOUNDS  = NO
HIDE_IN_BODY_DOCS      = NO
INTERNAL_DOCS          = NO
CASE_SENSE_NAMES       = NO
HIDE_SCOPE_NAMES       = NO
HIDE_COMPOUND_REFERENCE= NO
SHOW_INCLUDE_FILES     = YES
SHOW_GROUPED_MEMB_INC  = NO
FORCE_LOCAL_INCLUDES   = NO
INLINE_INFO            = YES
SORT_MEMBER_DOCS       = YES
SORT_BRIEF_DOCS        = NO
SORT_MEMBERS_CTORS_1ST = NO
SORT_GROUP_NAMES       = NO
SORT_BY_SCOPE_NAME     = NO
STRICT_PROTO_MATCHING  = NO
GENERATE_TODOLIST      = NO
GENERATE_TESTLIST      = NO
GENERATE_BUGLIST       = NO
GENERATE_DEPRECATEDLIST= NO
ENABLED_SECTIONS       =
MAX_INITIALIZER_LINES  = 30
SHOW_USED_FILES        = YES
SHOW_FILES             = YES
SHOW_NAMESPACES        = YES
FILE_VERSION_FILTER    =
LAYOUT_FILE            =
CITE_BIB_FILES         =
QUIET                  = NO
WARNINGS               = YES
WARN_IF_UNDOCUMENTED   = YES
WARN_IF_DOC_ERROR      = YES
WARN_NO_PARAMDOC       = NO
WARN_AS_ERROR          = NO
WARN_FORMAT            = "$file:$line: $text"
WARN_LOGFILE           =
INPUT                  = includes
INPUT_ENCODING         = UTF-8
FILE_PATTERNS          = *.c \
                         *.cc \
                         *.cxx \
                         *.cpp \
                         *.c++ \
                         *.java \
                         *.ii \
                         *.ixx \
                         *.ipp \
                         *.i++ \
                         *.inl \
                         *.idl \
                         *.ddl \
                         *.odl \
                         *.h \
                         *.hh \
                         *.hxx \
                         *.hpp \
                         *.h++ \
                         *.cs \
                         *.d \
                         *.php \
                         *.php4 \
                         *.php5 \
                         *.phtml \
                         *.inc \
                         *.m \
                         *.markdown \
                         *.md \
                         *.mm \
                         *.dox \
                         *.py \
                         *.pyw \
                         *.f90 \
                         *.f95 \
                         *.f03 \
                         *.f08 \
                         *.f \
                         *.for \
                         *.tcl \
                         *.vhd \
                         *.vhdl \
                         *.ucf \
                         *.qsf
RECURSIVE              = YES
EXCLUDE                =
EXCLUDE_SYMLINKS       = NO
EXCLUDE_PATTERNS       =
EXCLUDE_SYMBOLS        =
EXAMPLE_PATH           =
EXAMPLE_PATTERNS       = *
EXAMPLE_RECURSIVE      = NO
IMAGE_PATH             =
INPUT_FILTER           =
FILTER_PATTERNS        =
FILTER_SOURCE_FILES    = NO
FILTER_SOURCE_PATTERNS =
USE_MDFILE_AS_MAINPAGE =
SOURCE_BROWSER         = NO
INLINE_SOURCES         = NO
STRIP_CODE_COMMENTS    = NO
REFERENCED_BY_RELATION = NO
REFERENCES_RELATION    = NO
REFERENCES_LINK_SOURCE = YES
SOURCE_TOOLTIPS        = YES
USE_HTAGS              = NO
VERBATIM_HEADERS       = YES
CLANG_ASSISTED_PARSING = NO
CLANG_OPTIONS          =
ALPHABETICAL_INDEX     = YES
COLS_IN_ALPHA_INDEX    = 5
IGNORE_PREFIX          =
GENERATE_HTML          = NO
HTML_OUTPUT            = html
HTML_FILE_EXTENSION    = .html
HTML_HEADER            =
HTML_FOOTER            =
HTML_STYLESHEET        =
HTML_EXTRA_STYLESHEET  =
HTML_EXTRA_FILES       =
HTML_COLORSTYLE_HUE    = 220
HTML_COLORSTYLE_SAT    = 100
HTML_COLORSTYLE_GAMMA  = 80
HTML_TIMESTAMP         = NO
HTML_DYNAMIC_SECTIONS  = NO
HTML_INDEX_NUM_ENTRIES = 100
GENERATE_DOCSET        = NO
DOCSET_FEEDNAME        = "Doxygen generated docs"
DOCSET_BUNDLE_ID       = org.doxygen.Project
DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
DOCSET_PUBLISHER_NAME  = Publisher
GENERATE_HTMLHELP      = NO
CHM_FILE               =
HHC_LOCATION           =
GENERATE_CHI           = NO
CHM_INDEX_ENCODING     =
BINARY_TOC             = NO
TOC_EXPAND             = NO
GENERATE_QHP           = NO
QCH_FILE               =
QHP_NAMESPACE          = org.doxygen.Project
QHP_VIRTUAL_FOLDER     = doc
QHP_CUST_FILTER_NAME   =
QHP_CUST_FILTER_ATTRS  =
QHP_SECT_FILTER_ATTRS  =
QHG_LOCATION           =
GENERATE_ECLIPSEHELP   = NO
ECLIPSE_DOC_ID         = org.doxygen.Project
DISABLE_INDEX          = NO
GENERATE_TREEVIEW      = NO
ENUM_VALUES_PER_LINE   = 4
TREEVIEW_WIDTH         = 250
EXT_LINKS_IN_WINDOW    = NO
FORMULA_FONTSIZE       = 10
FORMULA_TRANSPARENT    = YES
USE_MATHJAX            = NO
MATHJAX_FORMAT         = HTML-CSS
MATHJAX_RELPATH        = http://cdn.mathjax.org/mathjax/latest
MATHJAX_EXTENSIONS     =
MATHJAX_CODEFILE       =
SEARCHENGINE           = YES
SERVER_BASED_SEARCH    = NO
EXTERNAL_SEARCH        = NO
SEARCHENGINE_URL       =
SEARCHDATA_FILE        = searchdata.xml
EXTERNAL_SEARCH_ID     =
EXTRA_SEARCH_MAPPINGS  =
GENERATE_LATEX         = NO
LATEX_OUTPUT           = latex
LATEX_CMD_NAME         = latex
MAKEINDEX_CMD_NAME     = makeindex
COMPACT_LATEX          = NO
PAPER_TYPE             = a4
EXTRA_PACKAGES         =
LATEX_HEADER           =
LATEX_FOOTER           =
LATEX_EXTRA_STYLESHEET =
LATEX_EXTRA_FILES      =
PDF_HYPERLINKS         = YES
USE_PDFLATEX           = YES
LATEX_BATCHMODE        = NO
LATEX_HIDE_INDICES     = NO
LATEX_SOURCE_CODE      = NO
LATEX_BIB_STYLE        = plain
LATEX_TIMESTAMP        = NO
GENERATE_RTF           = NO
RTF_OUTPUT             = rtf
COMPACT_RTF            = NO
RTF_HYPERLINKS         = NO
RTF_STYLESHEET_FILE    =
RTF_EXTENSIONS_FILE    =
RTF_SOURCE_CODE        = NO
GENERATE_MAN           = NO
MAN_OUTPUT             = man
MAN_EXTENSION          = .3
MAN_SUBDIR             =
MAN_LINKS              = NO
GENERATE_XML           = YES
XML_OUTPUT             = xml
XML_PROGRAMLISTING     = NO
GENERATE_DOCBOOK       = NO
DOCBOOK_OUTPUT         = docbook
DOCBOOK_PROGRAMLISTING = NO
GENERATE_AUTOGEN_DEF   = NO
GENERATE_PERLMOD       = NO
PERLMOD_LATEX          = NO
PERLMOD_PRETTY         = YES
PERLMOD_MAKEVAR_PREFIX =
ENABLE_PREPROCESSING   = YES
MACRO_EXPANSION        = YES
EXPAND_ONLY_PREDEF     = NO
SEARCH_INCLUDES        = YES
INCLUDE_PATH           =
INCLUDE_FILE_PATTERNS  =
PREDEFINED             =
EXPAND_AS_DEFINED      =
SKIP_FUNCTION_MACROS   = YES
TAGFILES               =
GENERATE_TAGFILE       =
ALLEXTERNALS           = NO
EXTERNAL_GROUPS        = YES
EXTERNAL_PAGES         = YES
PERL_PATH              = /usr/bin/perl
CLASS_DIAGRAMS         = NO
MSCGEN_PATH            =
DIA_PATH               =
HIDE_UNDOC_RELATIONS   = YES
HAVE_DOT               = NO
DOT_NUM_THREADS        = 0
DOT_FONTNAME           = Helvetica
DOT_FONTSIZE           = 10
DOT_FONTPATH           =
CLASS_GRAPH            = YES
COLLABORATION_GRAPH    = YES
GROUP_GRAPHS           = YES
UML_LOOK               = NO
UML_LIMIT_NUM_FIELDS   = 10
TEMPLATE_RELATIONS     = NO
INCLUDE_GRAPH          = YES
INCLUDED_BY_GRAPH      = YES
CALL_GRAPH             = NO
CALLER_GRAPH           = NO
GRAPHICAL_HIERARCHY    = YES
DIRECTORY_GRAPH        = YES
DOT_IMAGE_FORMAT       = png
INTERACTIVE_SVG        = NO
DOT_PATH               =
DOTFILE_DIRS           =
MSCFILE_DIRS           =
DIAFILE_DIRS           =
PLANTUML_JAR_PATH      =
PLANTUML_CFG_FILE      =
PLANTUML_INCLUDE_PATH  =
DOT_GRAPH_MAX_NODES    = 50
MAX_DOT_GRAPH_DEPTH    = 0
DOT_TRANSPARENT        = NO
DOT_MULTI_TARGETS      = NO
GENERATE_LEGEND        = YES
DOT_CLEANUP            = YES

1649 files changed:
build/level_0/settings
build/level_1/settings
build/level_2/settings
build/monolithic/settings
level_0/f_account/data/build/defines
level_0/f_account/data/build/settings
level_0/f_account/data/documentation/man/man3/f_account_by_id.3 [new file with mode: 0644]
level_0/f_account/data/documentation/man/man3/f_account_by_name.3 [new file with mode: 0644]
level_0/f_account/data/documentation/man/man3/f_account_group_id_by_name.3 [new file with mode: 0644]
level_0/f_account/data/documentation/man/man3/f_account_group_name_by_id.3 [new file with mode: 0644]
level_0/f_account/data/documentation/man/man3/f_account_id_by_name.3 [new file with mode: 0644]
level_0/f_account/data/documentation/man/man3/f_account_name_by_id.3 [new file with mode: 0644]
level_0/f_capability/data/build/settings
level_0/f_capability/data/documentation/man/man3/f_capability_ambient_get.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_ambient_reset.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_ambient_set.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_clear.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_clear_flag.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_compare.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_copy.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_copy_external.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_copy_internal.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_delete.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_file_descriptor_get.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_file_descriptor_set.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_file_get.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_file_set.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_flag_get.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_flag_set.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_from_name.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_from_text.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_groups_set.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_initialize.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_mode_get.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_mode_get_name.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_mode_set.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_owner_get.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_owner_set.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_process_bound_drop.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_process_bound_get.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_process_get.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_process_get_by_id.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_process_set.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_security_bits_get.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_security_bits_set.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_size.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_supported.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_supported_ambient.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_supported_code.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_to_name.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_to_text.3 [new file with mode: 0644]
level_0/f_capability/data/documentation/man/man3/f_capability_user_set.3 [new file with mode: 0644]
level_0/f_color/data/build/defines
level_0/f_color/data/build/settings
level_0/f_color/data/documentation/man/man3/f_color_context_delete.3 [new file with mode: 0644]
level_0/f_color/data/documentation/man/man3/f_color_context_destroy.3 [new file with mode: 0644]
level_0/f_color/data/documentation/man/man3/f_color_load_context.3 [new file with mode: 0644]
level_0/f_color/data/documentation/man/man3/f_color_save_1.3 [new file with mode: 0644]
level_0/f_color/data/documentation/man/man3/f_color_save_2.3 [new file with mode: 0644]
level_0/f_color/data/documentation/man/man3/f_color_save_3.3 [new file with mode: 0644]
level_0/f_color/data/documentation/man/man3/f_color_save_4.3 [new file with mode: 0644]
level_0/f_color/data/documentation/man/man3/f_color_save_5.3 [new file with mode: 0644]
level_0/f_console/data/build/defines
level_0/f_console/data/build/settings
level_0/f_console/data/documentation/man/man3/f_console_environment_process.3 [new file with mode: 0644]
level_0/f_console/data/documentation/man/man3/f_console_identify.3 [new file with mode: 0644]
level_0/f_console/data/documentation/man/man3/f_console_parameter_prioritize_left.3 [new file with mode: 0644]
level_0/f_console/data/documentation/man/man3/f_console_parameter_prioritize_right.3 [new file with mode: 0644]
level_0/f_console/data/documentation/man/man3/f_console_parameter_process.3 [new file with mode: 0644]
level_0/f_console/data/documentation/man/man3/f_console_parameters_delete.3 [new file with mode: 0644]
level_0/f_console/data/documentation/man/man3/f_console_parameters_destroy.3 [new file with mode: 0644]
level_0/f_control_group/data/build/settings
level_0/f_control_group/data/documentation/man/man3/f_control_group_copy.3 [new file with mode: 0644]
level_0/f_conversion/data/build/defines
level_0/f_conversion/data/build/settings
level_0/f_conversion/data/documentation/man/man3/f_conversion_character_is_binary.3 [new file with mode: 0644]
level_0/f_conversion/data/documentation/man/man3/f_conversion_character_is_decimal.3 [new file with mode: 0644]
level_0/f_conversion/data/documentation/man/man3/f_conversion_character_is_duodecimal.3 [new file with mode: 0644]
level_0/f_conversion/data/documentation/man/man3/f_conversion_character_is_hexidecimal.3 [new file with mode: 0644]
level_0/f_conversion/data/documentation/man/man3/f_conversion_character_is_octal.3 [new file with mode: 0644]
level_0/f_conversion/data/documentation/man/man3/f_conversion_character_to_binary.3 [new file with mode: 0644]
level_0/f_conversion/data/documentation/man/man3/f_conversion_character_to_decimal.3 [new file with mode: 0644]
level_0/f_conversion/data/documentation/man/man3/f_conversion_character_to_duodecimal.3 [new file with mode: 0644]
level_0/f_conversion/data/documentation/man/man3/f_conversion_character_to_hexidecimal.3 [new file with mode: 0644]
level_0/f_conversion/data/documentation/man/man3/f_conversion_character_to_octal.3 [new file with mode: 0644]
level_0/f_conversion/data/documentation/man/man3/f_conversion_number_signed_print.3 [new file with mode: 0644]
level_0/f_conversion/data/documentation/man/man3/f_conversion_number_signed_to_string.3 [new file with mode: 0644]
level_0/f_conversion/data/documentation/man/man3/f_conversion_number_unsigned_print.3 [new file with mode: 0644]
level_0/f_conversion/data/documentation/man/man3/f_conversion_number_unsigned_to_string.3 [new file with mode: 0644]
level_0/f_directory/data/build/defines
level_0/f_directory/data/build/settings
level_0/f_directory/data/documentation/man/man3/f_directory_create.3 [new file with mode: 0644]
level_0/f_directory/data/documentation/man/man3/f_directory_create_at.3 [new file with mode: 0644]
level_0/f_directory/data/documentation/man/man3/f_directory_exists.3 [new file with mode: 0644]
level_0/f_directory/data/documentation/man/man3/f_directory_exists_at.3 [new file with mode: 0644]
level_0/f_directory/data/documentation/man/man3/f_directory_is.3 [new file with mode: 0644]
level_0/f_directory/data/documentation/man/man3/f_directory_is_at.3 [new file with mode: 0644]
level_0/f_directory/data/documentation/man/man3/f_directory_list.3 [new file with mode: 0644]
level_0/f_directory/data/documentation/man/man3/f_directory_open.3 [new file with mode: 0644]
level_0/f_directory/data/documentation/man/man3/f_directory_open_at.3 [new file with mode: 0644]
level_0/f_directory/data/documentation/man/man3/f_directory_remove.3 [new file with mode: 0644]
level_0/f_directory/data/documentation/man/man3/f_directory_remove_custom.3 [new file with mode: 0644]
level_0/f_directory/data/documentation/man/man3/f_directory_touch.3 [new file with mode: 0644]
level_0/f_directory/data/documentation/man/man3/f_directory_touch_at.3 [new file with mode: 0644]
level_0/f_environment/data/build/settings
level_0/f_environment/data/documentation/man/man3/f_environment_clear.3 [new file with mode: 0644]
level_0/f_environment/data/documentation/man/man3/f_environment_exists.3 [new file with mode: 0644]
level_0/f_environment/data/documentation/man/man3/f_environment_get.3 [new file with mode: 0644]
level_0/f_environment/data/documentation/man/man3/f_environment_get_all.3 [new file with mode: 0644]
level_0/f_environment/data/documentation/man/man3/f_environment_secure_is.3 [new file with mode: 0644]
level_0/f_environment/data/documentation/man/man3/f_environment_set.3 [new file with mode: 0644]
level_0/f_environment/data/documentation/man/man3/f_environment_unset.3 [new file with mode: 0644]
level_0/f_execute/c/execute.h
level_0/f_execute/data/build/settings
level_0/f_execute/data/documentation/man/man3/f_execute_status_from_status.3 [new file with mode: 0644]
level_0/f_execute/data/documentation/man/man3/f_execute_status_to_status.3 [new file with mode: 0644]
level_0/f_file/data/build/settings
level_0/f_file/data/documentation/man/man3/f_file_access.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_access_at.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_clone.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_close.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_close_flush.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_copy.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_create.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_create_at.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_create_device.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_create_device_at.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_create_fifo.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_create_fifo_at.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_create_node.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_create_node_at.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_descriptor.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_exists.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_exists_at.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_flush.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_group_read.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_is.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_is_at.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_link.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_link_at.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_link_hard.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_link_hard_at.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_link_read.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_link_read_at.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_mode_determine.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_mode_from_string.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_mode_read.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_mode_read_at.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_mode_set.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_mode_set_at.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_mode_to_mode.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_name_base.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_name_directory.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_open.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_open_at.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_owner_read.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_read.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_read_block.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_read_until.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_remove.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_remove_at.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_rename.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_rename_at.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_role_change.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_role_change_at.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_seek.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_size.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_size_at.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_size_by_id.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_stat.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_stat_at.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_stat_by_id.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_stream_close.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_stream_open.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_stream_open_descriptor.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_stream_read.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_stream_read_block.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_stream_read_until.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_stream_reopen.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_stream_write.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_stream_write_block.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_stream_write_range.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_stream_write_until.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_touch.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_touch_at.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_type.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_type_at.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_umask_get.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_umask_set.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_write.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_write_block.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_write_range.3 [new file with mode: 0644]
level_0/f_file/data/documentation/man/man3/f_file_write_until.3 [new file with mode: 0644]
level_0/f_fss/data/build/defines
level_0/f_fss/data/build/settings
level_0/f_fss/data/documentation/man/man3/f_fss_apply_delimit.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_apply_delimit_range.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_count_lines.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_count_lines_range.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_fail_utf.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_fail_utf_to_false.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_is_combining.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_is_graph.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_is_space.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_is_zero_width.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_items_adjust.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_items_decimate_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_items_decrease_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_items_increase.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_items_increase_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_items_resize.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_named_adjust.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_named_decimate_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_named_decrease_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_named_increase.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_named_increase_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_named_resize.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_nameds_adjust.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_nameds_decimate_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_nameds_decrease_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_nameds_increase.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_nameds_increase_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_nameds_resize.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_nest_adjust.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_nest_decimate_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_nest_decrease_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_nest_increase.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_nest_increase_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_nest_resize.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_nests_adjust.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_nests_decimate_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_nests_decrease_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_nests_increase.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_nests_increase_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_nests_resize.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_seek_to_eol.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_set_adjust.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_set_decimate_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_set_decrease_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_set_increase.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_set_increase_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_set_quote_adjust.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_set_quote_decimate_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_set_quote_decrease_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_set_quote_increase.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_set_quote_increase_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_set_quote_resize.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_set_quotes_adjust.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_set_quotes_decimate_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_set_quotes_decrease_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_set_quotes_increase.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_set_quotes_increase_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_set_quotes_resize.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_set_resize.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_sets_adjust.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_sets_decimate_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_sets_decrease_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_sets_increase.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_sets_increase_by.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_sets_resize.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_skip_past_delimit.3 [new file with mode: 0644]
level_0/f_fss/data/documentation/man/man3/f_fss_skip_past_space.3 [new file with mode: 0644]
level_0/f_iki/data/build/defines
level_0/f_iki/data/build/settings
level_0/f_iki/data/documentation/man/man3/f_iki_content_is.3 [new file with mode: 0644]
level_0/f_iki/data/documentation/man/man3/f_iki_content_partial_is.3 [new file with mode: 0644]
level_0/f_iki/data/documentation/man/man3/f_iki_data_delete.3 [new file with mode: 0644]
level_0/f_iki/data/documentation/man/man3/f_iki_data_destroy.3 [new file with mode: 0644]
level_0/f_iki/data/documentation/man/man3/f_iki_datas_adjust.3 [new file with mode: 0644]
level_0/f_iki/data/documentation/man/man3/f_iki_datas_append.3 [new file with mode: 0644]
level_0/f_iki/data/documentation/man/man3/f_iki_datas_append_all.3 [new file with mode: 0644]
level_0/f_iki/data/documentation/man/man3/f_iki_datas_decimate_by.3 [new file with mode: 0644]
level_0/f_iki/data/documentation/man/man3/f_iki_datas_decrease_by.3 [new file with mode: 0644]
level_0/f_iki/data/documentation/man/man3/f_iki_datas_increase.3 [new file with mode: 0644]
level_0/f_iki/data/documentation/man/man3/f_iki_datas_increase_by.3 [new file with mode: 0644]
level_0/f_iki/data/documentation/man/man3/f_iki_datas_resize.3 [new file with mode: 0644]
level_0/f_iki/data/documentation/man/man3/f_iki_datass_adjust.3 [new file with mode: 0644]
level_0/f_iki/data/documentation/man/man3/f_iki_datass_append.3 [new file with mode: 0644]
level_0/f_iki/data/documentation/man/man3/f_iki_datass_append_all.3 [new file with mode: 0644]
level_0/f_iki/data/documentation/man/man3/f_iki_datass_decimate_by.3 [new file with mode: 0644]
level_0/f_iki/data/documentation/man/man3/f_iki_datass_decrease_by.3 [new file with mode: 0644]
level_0/f_iki/data/documentation/man/man3/f_iki_datass_increase.3 [new file with mode: 0644]
level_0/f_iki/data/documentation/man/man3/f_iki_datass_increase_by.3 [new file with mode: 0644]
level_0/f_iki/data/documentation/man/man3/f_iki_datass_resize.3 [new file with mode: 0644]
level_0/f_iki/data/documentation/man/man3/f_iki_object_is.3 [new file with mode: 0644]
level_0/f_iki/data/documentation/man/man3/f_iki_object_partial_is.3 [new file with mode: 0644]
level_0/f_iki/data/documentation/man/man3/f_iki_read.3 [new file with mode: 0644]
level_0/f_limit/data/build/settings
level_0/f_limit/data/documentation/man/man3/f_limit_process.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_sets_adjust.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_sets_append.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_sets_append_all.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_sets_decimate_by.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_sets_decrease_by.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_sets_increase.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_sets_increase_by.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_sets_resize.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_setss_adjust.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_setss_append.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_setss_append_all.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_setss_decimate_by.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_setss_decrease_by.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_setss_increase.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_setss_increase_by.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_setss_resize.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_values_adjust.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_values_append.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_values_append_all.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_values_decimate_by.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_values_decrease_by.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_values_increase.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_values_increase_by.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_values_resize.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_valuess_adjust.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_valuess_append.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_valuess_append_all.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_valuess_decimate_by.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_valuess_decrease_by.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_valuess_increase.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_valuess_increase_by.3 [new file with mode: 0644]
level_0/f_limit/data/documentation/man/man3/f_limit_valuess_resize.3 [new file with mode: 0644]
level_0/f_memory/data/build/settings
level_0/f_memory/data/documentation/man/man3/f_memory_adjust.3 [new file with mode: 0644]
level_0/f_memory/data/documentation/man/man3/f_memory_delete.3 [new file with mode: 0644]
level_0/f_memory/data/documentation/man/man3/f_memory_destroy.3 [new file with mode: 0644]
level_0/f_memory/data/documentation/man/man3/f_memory_new.3 [new file with mode: 0644]
level_0/f_memory/data/documentation/man/man3/f_memory_new_aligned.3 [new file with mode: 0644]
level_0/f_memory/data/documentation/man/man3/f_memory_resize.3 [new file with mode: 0644]
level_0/f_memory/data/documentation/man/man3/f_memory_structure_adjust.3 [new file with mode: 0644]
level_0/f_memory/data/documentation/man/man3/f_memory_structure_decimate_by.3 [new file with mode: 0644]
level_0/f_memory/data/documentation/man/man3/f_memory_structure_decrease_by.3 [new file with mode: 0644]
level_0/f_memory/data/documentation/man/man3/f_memory_structure_increase.3 [new file with mode: 0644]
level_0/f_memory/data/documentation/man/man3/f_memory_structure_increase_by.3 [new file with mode: 0644]
level_0/f_memory/data/documentation/man/man3/f_memory_structure_resize.3 [new file with mode: 0644]
level_0/f_path/data/build/settings
level_0/f_path/data/documentation/man/man3/f_path_change.3 [new file with mode: 0644]
level_0/f_path/data/documentation/man/man3/f_path_change_at.3 [new file with mode: 0644]
level_0/f_path/data/documentation/man/man3/f_path_current.3 [new file with mode: 0644]
level_0/f_path/data/documentation/man/man3/f_path_directory_cleanup.3 [new file with mode: 0644]
level_0/f_path/data/documentation/man/man3/f_path_is.3 [new file with mode: 0644]
level_0/f_path/data/documentation/man/man3/f_path_is_absolute.3 [new file with mode: 0644]
level_0/f_path/data/documentation/man/man3/f_path_is_relative.3 [new file with mode: 0644]
level_0/f_path/data/documentation/man/man3/f_path_is_relative_current.3 [new file with mode: 0644]
level_0/f_path/data/documentation/man/man3/f_path_real.3 [new file with mode: 0644]
level_0/f_pipe/data/build/defines
level_0/f_pipe/data/build/settings
level_0/f_pipe/data/documentation/man/man3/f_pipe_debug_exists.3 [new file with mode: 0644]
level_0/f_pipe/data/documentation/man/man3/f_pipe_error_exists.3 [new file with mode: 0644]
level_0/f_pipe/data/documentation/man/man3/f_pipe_input_exists.3 [new file with mode: 0644]
level_0/f_pipe/data/documentation/man/man3/f_pipe_warning_exists.3 [new file with mode: 0644]
level_0/f_print/data/build/settings
level_0/f_print/data/documentation/man/man3/f_print.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_character.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_character_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_character_safely_get.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_dynamic.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_dynamic_partial.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_dynamic_partial_raw.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_dynamic_partial_raw_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_dynamic_partial_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_dynamic_raw.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_dynamic_raw_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_dynamic_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_except.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_except_dynamic.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_except_dynamic_partial.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_except_dynamic_partial_raw.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_except_dynamic_partial_raw_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_except_dynamic_partial_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_except_dynamic_raw.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_except_dynamic_raw_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_except_dynamic_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_except_in.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_except_in_dynamic.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_except_in_dynamic_partial.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_except_in_dynamic_partial_raw.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_except_in_dynamic_partial_raw_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_except_in_dynamic_partial_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_except_in_dynamic_raw.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_except_in_dynamic_raw_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_except_in_dynamic_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_except_in_raw.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_except_in_raw_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_except_in_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_except_raw.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_except_raw_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_except_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_raw.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_raw_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_raw_terminated.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_safely_get.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_safely_terminated.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_terminated.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_character.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_character_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_dynamic.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_dynamic_partial.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_dynamic_partial_raw.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_dynamic_partial_raw_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_dynamic_partial_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_dynamic_raw.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_dynamic_raw_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_dynamic_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_except.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_except_dynamic.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_except_dynamic_partial.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_except_dynamic_partial_raw.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_except_dynamic_partial_raw_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_except_dynamic_partial_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_except_dynamic_raw.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_except_dynamic_raw_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_except_dynamic_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_except_in.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_except_in_dynamic.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_except_in_dynamic_partial.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_except_in_dynamic_partial_raw.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_except_in_dynamic_partial_raw_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_except_in_dynamic_partial_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_except_in_dynamic_raw.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_except_in_dynamic_raw_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_except_in_dynamic_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_except_in_raw.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_except_in_raw_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_except_in_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_except_raw.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_except_raw_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_except_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_raw.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_raw_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_raw_terminated.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_safely.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_safely_terminated.3 [new file with mode: 0644]
level_0/f_print/data/documentation/man/man3/f_print_to_terminated.3 [new file with mode: 0644]
level_0/f_serialize/data/build/defines
level_0/f_serialize/data/build/settings
level_0/f_serialize/data/documentation/man/man3/f_serialize_from_simple.3 [new file with mode: 0644]
level_0/f_serialize/data/documentation/man/man3/f_serialize_from_simple_get.3 [new file with mode: 0644]
level_0/f_serialize/data/documentation/man/man3/f_serialize_from_simple_range.3 [new file with mode: 0644]
level_0/f_serialize/data/documentation/man/man3/f_serialize_from_simple_select.3 [new file with mode: 0644]
level_0/f_serialize/data/documentation/man/man3/f_serialize_to_simple.3 [new file with mode: 0644]
level_0/f_signal/data/build/settings
level_0/f_signal/data/documentation/man/man3/f_signal_action.3 [new file with mode: 0644]
level_0/f_signal/data/documentation/man/man3/f_signal_close.3 [new file with mode: 0644]
level_0/f_signal/data/documentation/man/man3/f_signal_mask.3 [new file with mode: 0644]
level_0/f_signal/data/documentation/man/man3/f_signal_open.3 [new file with mode: 0644]
level_0/f_signal/data/documentation/man/man3/f_signal_pause.3 [new file with mode: 0644]
level_0/f_signal/data/documentation/man/man3/f_signal_queue.3 [new file with mode: 0644]
level_0/f_signal/data/documentation/man/man3/f_signal_read.3 [new file with mode: 0644]
level_0/f_signal/data/documentation/man/man3/f_signal_send.3 [new file with mode: 0644]
level_0/f_signal/data/documentation/man/man3/f_signal_set_add.3 [new file with mode: 0644]
level_0/f_signal/data/documentation/man/man3/f_signal_set_delete.3 [new file with mode: 0644]
level_0/f_signal/data/documentation/man/man3/f_signal_set_empty.3 [new file with mode: 0644]
level_0/f_signal/data/documentation/man/man3/f_signal_set_fill.3 [new file with mode: 0644]
level_0/f_signal/data/documentation/man/man3/f_signal_set_has.3 [new file with mode: 0644]
level_0/f_signal/data/documentation/man/man3/f_signal_suspend.3 [new file with mode: 0644]
level_0/f_signal/data/documentation/man/man3/f_signal_wait.3 [new file with mode: 0644]
level_0/f_signal/data/documentation/man/man3/f_signal_wait_until.3 [new file with mode: 0644]
level_0/f_socket/data/build/defines
level_0/f_socket/data/build/settings
level_0/f_socket/data/documentation/man/man3/f_socket_accept.3 [new file with mode: 0644]
level_0/f_socket/data/documentation/man/man3/f_socket_bind.3 [new file with mode: 0644]
level_0/f_socket/data/documentation/man/man3/f_socket_bind_local.3 [new file with mode: 0644]
level_0/f_socket/data/documentation/man/man3/f_socket_connect.3 [new file with mode: 0644]
level_0/f_socket/data/documentation/man/man3/f_socket_create.3 [new file with mode: 0644]
level_0/f_socket/data/documentation/man/man3/f_socket_create_pair.3 [new file with mode: 0644]
level_0/f_socket/data/documentation/man/man3/f_socket_disconnect.3 [new file with mode: 0644]
level_0/f_socket/data/documentation/man/man3/f_socket_listen.3 [new file with mode: 0644]
level_0/f_socket/data/documentation/man/man3/f_socket_option_get.3 [new file with mode: 0644]
level_0/f_socket/data/documentation/man/man3/f_socket_option_set.3 [new file with mode: 0644]
level_0/f_socket/data/documentation/man/man3/f_socket_read.3 [new file with mode: 0644]
level_0/f_socket/data/documentation/man/man3/f_socket_read_message.3 [new file with mode: 0644]
level_0/f_socket/data/documentation/man/man3/f_socket_write.3 [new file with mode: 0644]
level_0/f_socket/data/documentation/man/man3/f_socket_write_message.3 [new file with mode: 0644]
level_0/f_status/data/build/defines
level_0/f_status/data/build/dependencies
level_0/f_status/data/build/settings
level_0/f_status/data/documentation/man/man3/f_status_string_to.3 [new file with mode: 0644]
level_0/f_status/data/documentation/man/man3/f_statuss_adjust.3 [new file with mode: 0644]
level_0/f_status/data/documentation/man/man3/f_statuss_append.3 [new file with mode: 0644]
level_0/f_status/data/documentation/man/man3/f_statuss_append_all.3 [new file with mode: 0644]
level_0/f_status/data/documentation/man/man3/f_statuss_decimate_by.3 [new file with mode: 0644]
level_0/f_status/data/documentation/man/man3/f_statuss_decrease_by.3 [new file with mode: 0644]
level_0/f_status/data/documentation/man/man3/f_statuss_increase.3 [new file with mode: 0644]
level_0/f_status/data/documentation/man/man3/f_statuss_increase_by.3 [new file with mode: 0644]
level_0/f_status/data/documentation/man/man3/f_statuss_resize.3 [new file with mode: 0644]
level_0/f_status/data/documentation/man/man3/f_statusss_adjust.3 [new file with mode: 0644]
level_0/f_status/data/documentation/man/man3/f_statusss_append.3 [new file with mode: 0644]
level_0/f_status/data/documentation/man/man3/f_statusss_append_all.3 [new file with mode: 0644]
level_0/f_status/data/documentation/man/man3/f_statusss_decimate_by.3 [new file with mode: 0644]
level_0/f_status/data/documentation/man/man3/f_statusss_decrease_by.3 [new file with mode: 0644]
level_0/f_status/data/documentation/man/man3/f_statusss_increase.3 [new file with mode: 0644]
level_0/f_status/data/documentation/man/man3/f_statusss_increase_by.3 [new file with mode: 0644]
level_0/f_status/data/documentation/man/man3/f_statusss_resize.3 [new file with mode: 0644]
level_0/f_status_string/data/build/defines
level_0/f_status_string/data/build/settings
level_0/f_string/data/build/settings
level_0/f_string/data/documentation/man/man3/f_string_append.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_append_assure.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_append_assure_nulless.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_append_nulless.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_adjust.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_append.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_append_assure.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_append_assure_nulless.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_append_nulless.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_decimate_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_decrease_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_increase.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_increase_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_mash.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_mash_nulless.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_mish.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_mish_nulless.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_append.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_append_assure.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_append_assure_nulless.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_append_nulless.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_mash.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_mash_nulless.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_mish.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_mish_nulless.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_prepend.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_prepend_assure.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_prepend_assure_nulless.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_prepend_nulless.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_prepend.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_prepend_assure.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_prepend_assure_nulless.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_prepend_nulless.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_resize.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_seek_line.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_seek_line_to.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_seek_to.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_terminate.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamic_terminate_after.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamics_adjust.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamics_append.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamics_append_all.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamics_decimate_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamics_decrease_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamics_increase.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamics_increase_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamics_resize.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamicss_adjust.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamicss_append.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamicss_append_all.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamicss_decimate_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamicss_decrease_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamicss_increase.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamicss_increase_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_dynamicss_resize.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_map_multis_adjust.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_map_multis_append.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_map_multis_append_all.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_map_multis_decimate_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_map_multis_decrease_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_map_multis_increase.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_map_multis_increase_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_map_multis_resize.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_map_multiss_adjust.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_map_multiss_append.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_map_multiss_append_all.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_map_multiss_decimate_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_map_multiss_decrease_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_map_multiss_increase.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_map_multiss_increase_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_map_multiss_resize.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_maps_adjust.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_maps_append.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_maps_append_all.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_maps_decimate_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_maps_decrease_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_maps_increase.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_maps_increase_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_maps_resize.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_mapss_adjust.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_mapss_append.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_mapss_append_all.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_mapss_decimate_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_mapss_decrease_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_mapss_increase.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_mapss_increase_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_mapss_resize.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_mash.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_mash_nulless.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_mish.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_mish_nulless.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_prepend.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_prepend_assure.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_prepend_assure_nulless.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_prepend_nulless.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_quantitys_adjust.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_quantitys_append.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_quantitys_append_all.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_quantitys_decimate_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_quantitys_decrease_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_quantitys_increase.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_quantitys_increase_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_quantitys_resize.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_quantityss_adjust.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_quantityss_append.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_quantityss_append_all.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_quantityss_decimate_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_quantityss_decrease_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_quantityss_increase.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_quantityss_increase_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_quantityss_resize.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_ranges_adjust.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_ranges_append.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_ranges_append_all.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_ranges_decimate_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_ranges_decrease_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_ranges_increase.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_ranges_increase_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_ranges_resize.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_rangess_adjust.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_rangess_append.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_rangess_append_all.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_rangess_decimate_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_rangess_decrease_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_rangess_increase.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_rangess_increase_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_rangess_resize.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_seek_line.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_seek_line_to.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_seek_to.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_triples_adjust.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_triples_append.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_triples_append_all.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_triples_decimate_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_triples_decrease_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_triples_increase.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_triples_increase_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_triples_resize.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_tripless_adjust.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_tripless_append.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_tripless_append_all.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_tripless_decimate_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_tripless_decrease_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_tripless_increase.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_tripless_increase_by.3 [new file with mode: 0644]
level_0/f_string/data/documentation/man/man3/f_string_tripless_resize.3 [new file with mode: 0644]
level_0/f_thread/data/build/settings
level_0/f_thread/data/documentation/man/man3/f_thread_at_fork.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attribute_affinity_get.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attribute_affinity_set.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attribute_concurrency_get.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attribute_concurrency_set.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attribute_create.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attribute_default_get.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attribute_default_set.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attribute_delete.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attribute_detach_get.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attribute_detach_set.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attribute_guard_get.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attribute_guard_set.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attribute_scheduler_inherit_get.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attribute_scheduler_inherit_set.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attribute_scheduler_parameter_get.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attribute_scheduler_parameter_set.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attribute_scheduler_policy_get.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attribute_scheduler_policy_set.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attribute_scope_get.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attribute_scope_set.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attribute_stack_get.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attribute_stack_set.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attribute_stack_size_get.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attribute_stack_size_set.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attributes_adjust.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attributes_decimate_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attributes_decrease_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attributes_increase.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attributes_increase_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_attributes_resize.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attribute_create.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attribute_delete.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attribute_shared_get.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attribute_shared_set.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attributes_adjust.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attributes_decimate_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attributes_decrease_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attributes_increase.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attributes_increase_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attributes_resize.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_barrier_create.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_barrier_delete.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_barrier_wait.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_barriers_adjust.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_barriers_decimate_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_barriers_decrease_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_barriers_increase.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_barriers_increase_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_barriers_resize.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_caller.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_cancel.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_cancel_state_set.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_cancel_test.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_cancel_type_set.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_clock_get_id.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_compare.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_condition_attribute_clock_get.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_condition_attribute_clock_set.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_condition_attribute_create.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_condition_attribute_delete.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_condition_attribute_shared_get.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_condition_attribute_shared_set.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_condition_attributes_adjust.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_condition_attributes_decimate_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_condition_attributes_decrease_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_condition_attributes_increase.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_condition_attributes_increase_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_condition_attributes_resize.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_condition_create.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_condition_delete.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_condition_signal.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_condition_signal_all.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_condition_wait.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_condition_wait_timed.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_conditions_adjust.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_conditions_decimate_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_conditions_decrease_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_conditions_increase.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_conditions_increase_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_conditions_resize.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_create.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_detach.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_exit.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_ids_adjust.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_ids_decimate_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_ids_decrease_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_ids_increase.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_ids_increase_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_ids_resize.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_join.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_join_timed.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_join_try.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_key_create.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_key_delete.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_key_get.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_key_set.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_keys_adjust.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_keys_decimate_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_keys_decrease_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_keys_increase.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_keys_increase_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_keys_resize.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_lock_attribute_create.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_lock_attribute_delete.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_lock_attribute_shared_get.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_lock_attribute_shared_set.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_lock_attributes_adjust.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_lock_attributes_decimate_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_lock_attributes_decrease_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_lock_attributes_increase.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_lock_attributes_increase_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_lock_attributes_resize.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_lock_create.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_lock_delete.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_lock_read.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_lock_read_timed.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_lock_read_try.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_lock_write.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_lock_write_timed.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_lock_write_try.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_locks_adjust.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_locks_decimate_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_locks_decrease_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_locks_increase.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_locks_increase_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_locks_resize.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_create.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_delete.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_priority_ceiling_get.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_priority_ceiling_set.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_protocol_get.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_protocol_set.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_shared_get.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_shared_set.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_type_get.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_type_set.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attributes_adjust.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attributes_decimate_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attributes_decrease_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attributes_increase.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attributes_increase_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attributes_resize.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutex_create.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutex_delete.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutex_lock.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutex_lock_timed.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutex_lock_try.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutex_priority_ceiling_get.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutex_priority_ceiling_set.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutex_unlock.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutexs_adjust.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutexs_decimate_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutexs_decrease_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutexs_increase.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutexs_increase_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_mutexs_resize.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_once.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_onces_adjust.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_onces_decimate_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_onces_decrease_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_onces_increase.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_onces_increase_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_onces_resize.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_scheduler_parameter_get.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_scheduler_parameter_set.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_scheduler_priority_set.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_create.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_delete.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_file_close.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_file_delete.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_file_open.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_lock.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_lock_timed.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_lock_try.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_unlock.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_value_get.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_semaphores_adjust.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_semaphores_decimate_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_semaphores_decrease_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_semaphores_increase.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_semaphores_increase_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_semaphores_resize.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_sets_adjust.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_sets_decimate_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_sets_decrease_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_sets_increase.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_sets_increase_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_sets_resize.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_signal_mask.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_signal_queue.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_signal_write.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_spin_create.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_spin_delete.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_spin_lock.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_spin_lock_try.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_spin_unlock.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_spins_adjust.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_spins_decimate_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_spins_decrease_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_spins_increase.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_spins_increase_by.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_spins_resize.3 [new file with mode: 0644]
level_0/f_thread/data/documentation/man/man3/f_thread_unlock.3 [new file with mode: 0644]
level_0/f_type/data/build/defines
level_0/f_type/data/build/dependencies
level_0/f_type/data/build/settings
level_0/f_type_array/data/build/defines
level_0/f_type_array/data/build/settings
level_0/f_type_array/data/documentation/man/man3/f_array_lengths_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_array_lengths_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_array_lengths_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_array_lengths_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_array_lengths_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_array_lengths_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_array_lengths_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_array_lengths_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_array_lengthss_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_array_lengthss_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_array_lengthss_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_array_lengthss_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_array_lengthss_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_array_lengthss_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_array_lengthss_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_array_lengthss_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_cells_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_cells_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_cells_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_cells_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_cells_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_cells_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_cells_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_cells_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_cellss_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_cellss_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_cellss_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_cellss_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_cellss_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_cellss_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_cellss_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_cellss_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_fll_ids_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_fll_ids_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_fll_ids_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_fll_ids_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_fll_ids_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_fll_ids_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_fll_ids_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_fll_ids_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_fll_idss_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_fll_idss_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_fll_idss_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_fll_idss_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_fll_idss_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_fll_idss_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_fll_idss_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_fll_idss_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int128s_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int128s_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int128s_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int128s_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int128s_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int128s_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int128s_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int128s_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int128ss_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int128ss_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int128ss_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int128ss_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int128ss_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int128ss_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int128ss_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int128ss_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int16s_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int16s_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int16s_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int16s_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int16s_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int16s_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int16s_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int16s_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int16ss_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int16ss_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int16ss_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int16ss_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int16ss_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int16ss_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int16ss_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int16ss_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int32s_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int32s_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int32s_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int32s_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int32s_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int32s_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int32s_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int32s_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int32ss_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int32ss_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int32ss_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int32ss_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int32ss_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int32ss_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int32ss_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int32ss_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int64s_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int64s_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int64s_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int64s_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int64s_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int64s_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int64s_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int64s_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int64ss_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int64ss_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int64ss_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int64ss_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int64ss_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int64ss_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int64ss_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int64ss_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int8s_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int8s_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int8s_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int8s_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int8s_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int8s_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int8s_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int8s_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int8ss_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int8ss_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int8ss_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int8ss_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int8ss_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int8ss_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int8ss_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_int8ss_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_states_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_states_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_states_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_states_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_states_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_states_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_states_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_states_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_statess_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_statess_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_statess_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_statess_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_statess_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_statess_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_statess_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_statess_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint128s_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint128s_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint128s_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint128s_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint128s_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint128s_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint128s_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint128s_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint128ss_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint128ss_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint128ss_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint128ss_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint128ss_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint128ss_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint128ss_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint128ss_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint16s_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint16s_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint16s_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint16s_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint16s_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint16s_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint16s_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint16s_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint16ss_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint16ss_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint16ss_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint16ss_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint16ss_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint16ss_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint16ss_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint16ss_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint32s_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint32s_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint32s_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint32s_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint32s_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint32s_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint32s_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint32s_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint32ss_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint32ss_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint32ss_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint32ss_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint32ss_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint32ss_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint32ss_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint32ss_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint64s_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint64s_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint64s_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint64s_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint64s_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint64s_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint64s_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint64s_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint64ss_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint64ss_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint64ss_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint64ss_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint64ss_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint64ss_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint64ss_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint64ss_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint8s_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint8s_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint8s_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint8s_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint8s_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint8s_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint8s_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint8s_resize.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint8ss_adjust.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint8ss_append.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint8ss_append_all.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint8ss_decimate_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint8ss_decrease_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint8ss_increase.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint8ss_increase_by.3 [new file with mode: 0644]
level_0/f_type_array/data/documentation/man/man3/f_uint8ss_resize.3 [new file with mode: 0644]
level_0/f_utf/c/private-utf_whitespace.h
level_0/f_utf/data/build/defines
level_0/f_utf/data/build/settings
level_0/f_utf/data/documentation/man/man3/f_utf_buffer_decrement.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_buffer_increment.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_char_to_char.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_char_to_character.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_alphabetic.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_alphabetic_digit.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_alphabetic_numeric.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_ascii.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_combining.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_control.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_control_code.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_control_format.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_control_picture.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_digit.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_emoji.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_fragment.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_graph.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_numeric.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_phonetic.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_private.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_punctuation.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_subscript.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_superscript.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_symbol.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_unassigned.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_valid.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_whitespace.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_whitespace_modifier.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_whitespace_other.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_whitespace_zero_width.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_wide.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_word.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_word_dash.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_word_dash_plus.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_is_zero_width.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_unicode_from.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_unicode_string_to.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_character_unicode_to.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_alphabetic.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_alphabetic_digit.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_alphabetic_numeric.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_ascii.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_combining.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_control.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_control_code.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_control_format.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_control_picture.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_digit.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_emoji.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_fragment.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_graph.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_numeric.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_phonetic.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_private.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_punctuation.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_subscript.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_superscript.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_symbol.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_unassigned.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_valid.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_whitespace.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_whitespace_modifier.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_whitespace_other.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_whitespace_zero_width.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_wide.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_word.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_word_dash.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_word_dash_plus.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_is_zero_width.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_append.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_append_assure.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_append_assure_nulless.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_append_nulless.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_adjust.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_append.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_append_assure.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_append_assure_nulless.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_append_nulless.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_decimate_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_decrease_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_increase.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_increase_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_mash.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_mash_nulless.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_mish.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_mish_nulless.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_append.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_append_assure.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_append_assure_nulless.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_append_nulless.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_mash.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_mash_nulless.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_mish.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_mish_nulless.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_prepend.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_prepend_assure.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_prepend_assure_nulless.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_prepend_nulless.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_prepend.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_prepend_assure.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_prepend_assure_nulless.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_prepend_nulless.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_resize.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_seek_line.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_seek_line_to.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_seek_to.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_terminate.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_terminate_after.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamics_adjust.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamics_append.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamics_append_all.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamics_decimate_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamics_decrease_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamics_increase.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamics_increase_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamics_resize.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamicss_adjust.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamicss_append.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamicss_append_all.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamicss_decimate_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamicss_decrease_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamicss_increase.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamicss_increase_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamicss_resize.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multis_adjust.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multis_append.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multis_append_all.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multis_decimate_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multis_decrease_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multis_increase.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multis_increase_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multis_resize.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multiss_adjust.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multiss_append.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multiss_append_all.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multiss_decimate_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multiss_decrease_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multiss_increase.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multiss_increase_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multiss_resize.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_maps_adjust.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_maps_append.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_maps_append_all.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_maps_decimate_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_maps_decrease_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_maps_increase.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_maps_increase_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_maps_resize.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_mapss_adjust.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_mapss_append.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_mapss_append_all.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_mapss_decimate_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_mapss_decrease_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_mapss_increase.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_mapss_increase_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_mapss_resize.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_mash.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_mash_nulless.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_mish.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_mish_nulless.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_prepend.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_prepend_assure.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_prepend_assure_nulless.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_prepend_nulless.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_seek_line.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_seek_line_to.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_seek_to.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_triples_adjust.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_triples_append.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_triples_append_all.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_triples_decimate_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_triples_decrease_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_triples_increase.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_triples_increase_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_triples_resize.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_tripless_adjust.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_tripless_append.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_tripless_append_all.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_tripless_decimate_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_tripless_decrease_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_tripless_increase.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_tripless_increase_by.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_string_tripless_resize.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_unicode_from.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_unicode_string_to.3 [new file with mode: 0644]
level_0/f_utf/data/documentation/man/man3/f_utf_unicode_to.3 [new file with mode: 0644]
level_0/f_utf/data/tests/bytesequences/combining-all.txt
level_0/f_utf/data/tests/bytesequences/control-all.txt
level_0/f_utf/data/tests/bytesequences/digit-all.txt
level_0/f_utf/data/tests/bytesequences/emoji-all.txt
level_0/f_utf/data/tests/bytesequences/numeric-all.txt
level_0/f_utf/data/tests/bytesequences/phonetic-all.txt
level_0/f_utf/data/tests/bytesequences/private-all.txt
level_0/f_utf/data/tests/bytesequences/punctuation-all.txt
level_0/f_utf/data/tests/bytesequences/subscript-all.txt
level_0/f_utf/data/tests/bytesequences/superscript-all.txt
level_0/f_utf/data/tests/bytesequences/symbol-all.txt
level_0/f_utf/data/tests/bytesequences/whitespace-all.txt
level_0/f_utf/data/tests/bytesequences/whitespace-modifier.txt
level_0/f_utf/data/tests/bytesequences/whitespace-other.txt
level_0/f_utf/data/tests/bytesequences/whitespace-zero_width.txt
level_0/f_utf/data/tests/bytesequences/wide-all.txt
level_0/f_utf/data/tests/bytesequences/word-all.txt
level_0/f_utf/data/tests/bytesequences/word-lax.txt
level_0/f_utf/data/tests/bytesequences/word_dash-all.txt
level_0/f_utf/data/tests/bytesequences/word_dash-lax.txt
level_0/f_utf/data/tests/bytesequences/word_dash_plus-all.txt
level_0/f_utf/data/tests/bytesequences/word_dash_plus-lax.txt
level_0/f_utf/data/tests/bytesequences/zero_width-all.txt
level_0/f_utf/data/tests/codepoints/combining-all.txt
level_0/f_utf/data/tests/codepoints/control-all.txt
level_0/f_utf/data/tests/codepoints/digit-all.txt
level_0/f_utf/data/tests/codepoints/emoji-all.txt
level_0/f_utf/data/tests/codepoints/numeric-all.txt
level_0/f_utf/data/tests/codepoints/phonetic-all.txt
level_0/f_utf/data/tests/codepoints/private-all.txt
level_0/f_utf/data/tests/codepoints/punctuation-all.txt
level_0/f_utf/data/tests/codepoints/subscript-all.txt
level_0/f_utf/data/tests/codepoints/superscript-all.txt
level_0/f_utf/data/tests/codepoints/symbol-all.txt
level_0/f_utf/data/tests/codepoints/whitespace-all.txt
level_0/f_utf/data/tests/codepoints/whitespace-modifier.txt
level_0/f_utf/data/tests/codepoints/whitespace-other.txt
level_0/f_utf/data/tests/codepoints/whitespace-zero_width.txt
level_0/f_utf/data/tests/codepoints/wide-all.txt
level_0/f_utf/data/tests/codepoints/word-all.txt
level_0/f_utf/data/tests/codepoints/word-lax.txt
level_0/f_utf/data/tests/codepoints/word_dash-all.txt
level_0/f_utf/data/tests/codepoints/word_dash-lax.txt
level_0/f_utf/data/tests/codepoints/word_dash_plus-all.txt
level_0/f_utf/data/tests/codepoints/word_dash_plus-lax.txt
level_0/f_utf/data/tests/codepoints/zero_width-all.txt
level_0/f_utf/data/tests/values/digit-all.txt
level_1/fl_control_group/data/build/settings
level_1/fl_control_group/data/documentation/man/man3/fl_control_group_apply.3 [new file with mode: 0644]
level_1/fl_conversion/data/build/defines
level_1/fl_conversion/data/build/settings
level_1/fl_conversion/data/documentation/man/man3/fl_conversion_dynamic_partial_to_signed.3 [new file with mode: 0644]
level_1/fl_conversion/data/documentation/man/man3/fl_conversion_dynamic_partial_to_signed_detect.3 [new file with mode: 0644]
level_1/fl_conversion/data/documentation/man/man3/fl_conversion_dynamic_partial_to_unsigned.3 [new file with mode: 0644]
level_1/fl_conversion/data/documentation/man/man3/fl_conversion_dynamic_partial_to_unsigned_detect.3 [new file with mode: 0644]
level_1/fl_conversion/data/documentation/man/man3/fl_conversion_dynamic_to_signed.3 [new file with mode: 0644]
level_1/fl_conversion/data/documentation/man/man3/fl_conversion_dynamic_to_signed_detect.3 [new file with mode: 0644]
level_1/fl_conversion/data/documentation/man/man3/fl_conversion_dynamic_to_unsigned.3 [new file with mode: 0644]
level_1/fl_conversion/data/documentation/man/man3/fl_conversion_dynamic_to_unsigned_detect.3 [new file with mode: 0644]
level_1/fl_directory/data/build/defines
level_1/fl_directory/data/build/settings
level_1/fl_directory/data/documentation/man/man3/fl_directory_clone.3 [new file with mode: 0644]
level_1/fl_directory/data/documentation/man/man3/fl_directory_clone_content.3 [new file with mode: 0644]
level_1/fl_directory/data/documentation/man/man3/fl_directory_copy.3 [new file with mode: 0644]
level_1/fl_directory/data/documentation/man/man3/fl_directory_copy_content.3 [new file with mode: 0644]
level_1/fl_directory/data/documentation/man/man3/fl_directory_create.3 [new file with mode: 0644]
level_1/fl_directory/data/documentation/man/man3/fl_directory_list.3 [new file with mode: 0644]
level_1/fl_directory/data/documentation/man/man3/fl_directory_path_pop.3 [new file with mode: 0644]
level_1/fl_directory/data/documentation/man/man3/fl_directory_path_push.3 [new file with mode: 0644]
level_1/fl_environment/data/build/settings
level_1/fl_environment/data/documentation/man/man3/fl_environment_load_name.3 [new file with mode: 0644]
level_1/fl_environment/data/documentation/man/man3/fl_environment_load_names.3 [new file with mode: 0644]
level_1/fl_environment/data/documentation/man/man3/fl_environment_path_explode.3 [new file with mode: 0644]
level_1/fl_environment/data/documentation/man/man3/fl_environment_path_explode_reverse.3 [new file with mode: 0644]
level_1/fl_execute/data/build/settings
level_1/fl_fss/data/build/defines
level_1/fl_fss/data/build/settings
level_1/fl_fss/data/documentation/man/man3/fl_fss_basic_content_read.3 [new file with mode: 0644]
level_1/fl_fss/data/documentation/man/man3/fl_fss_basic_content_write.3 [new file with mode: 0644]
level_1/fl_fss/data/documentation/man/man3/fl_fss_basic_list_content_read.3 [new file with mode: 0644]
level_1/fl_fss/data/documentation/man/man3/fl_fss_basic_list_content_write.3 [new file with mode: 0644]
level_1/fl_fss/data/documentation/man/man3/fl_fss_basic_list_object_read.3 [new file with mode: 0644]
level_1/fl_fss/data/documentation/man/man3/fl_fss_basic_list_object_write.3 [new file with mode: 0644]
level_1/fl_fss/data/documentation/man/man3/fl_fss_basic_object_read.3 [new file with mode: 0644]
level_1/fl_fss/data/documentation/man/man3/fl_fss_basic_object_write.3 [new file with mode: 0644]
level_1/fl_fss/data/documentation/man/man3/fl_fss_embedded_list_content_read.3 [new file with mode: 0644]
level_1/fl_fss/data/documentation/man/man3/fl_fss_embedded_list_content_write.3 [new file with mode: 0644]
level_1/fl_fss/data/documentation/man/man3/fl_fss_embedded_list_object_read.3 [new file with mode: 0644]
level_1/fl_fss/data/documentation/man/man3/fl_fss_embedded_list_object_write.3 [new file with mode: 0644]
level_1/fl_fss/data/documentation/man/man3/fl_fss_extended_content_read.3 [new file with mode: 0644]
level_1/fl_fss/data/documentation/man/man3/fl_fss_extended_content_write.3 [new file with mode: 0644]
level_1/fl_fss/data/documentation/man/man3/fl_fss_extended_list_content_read.3 [new file with mode: 0644]
level_1/fl_fss/data/documentation/man/man3/fl_fss_extended_list_content_write.3 [new file with mode: 0644]
level_1/fl_fss/data/documentation/man/man3/fl_fss_extended_list_object_read.3 [new file with mode: 0644]
level_1/fl_fss/data/documentation/man/man3/fl_fss_extended_list_object_write.3 [new file with mode: 0644]
level_1/fl_fss/data/documentation/man/man3/fl_fss_extended_object_read.3 [new file with mode: 0644]
level_1/fl_fss/data/documentation/man/man3/fl_fss_extended_object_write.3 [new file with mode: 0644]
level_1/fl_iki/data/build/defines
level_1/fl_iki/data/build/settings
level_1/fl_iki/data/documentation/man/man3/fl_iki_read.3 [new file with mode: 0644]
level_1/fl_print/c/print.h
level_1/fl_print/data/build/defines
level_1/fl_print/data/build/settings
level_1/fl_print/data/documentation/man/man3/fl_print_format.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_format_convert.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_string_va.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_dynamic.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_dynamic_partial.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_dynamic_partial_raw.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_dynamic_partial_raw_safely.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_dynamic_partial_safely.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_dynamic_raw.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_dynamic_raw_safely.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_dynamic_safely.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_except.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_dynamic.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_dynamic_partial.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_dynamic_partial_raw.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_dynamic_partial_raw_safely.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_dynamic_partial_safely.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_dynamic_raw.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_dynamic_raw_safely.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_dynamic_safely.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_dynamic.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_dynamic_partial.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_dynamic_partial_raw.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_dynamic_partial_raw_safely.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_dynamic_partial_safely.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_dynamic_raw.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_dynamic_raw_safely.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_dynamic_safely.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_raw.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_raw_safely.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_safely.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_raw.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_raw_safely.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_safely.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_raw.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_raw_safely.3 [new file with mode: 0644]
level_1/fl_print/data/documentation/man/man3/fl_print_trim_safely.3 [new file with mode: 0644]
level_1/fl_signal/c/signal.h
level_1/fl_signal/data/build/defines
level_1/fl_signal/data/build/settings
level_1/fl_signal/data/documentation/man/man3/fl_signal_state_interrupt.3 [new file with mode: 0644]
level_1/fl_string/data/build/defines
level_1/fl_string/data/build/dependencies-tests
level_1/fl_string/data/build/settings
level_1/fl_string/data/documentation/man/man3/fl_string_compare.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_compare_except.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_compare_except_trim.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_compare_trim.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_compare.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_compare_except.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_compare_except_string.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_compare_except_trim.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_compare_except_trim_string.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_compare_string.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_compare_trim.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_compare_trim_string.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_dynamic.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_except.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_except_dynamic.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_except_string.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_except_trim.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_except_trim_dynamic.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_except_trim_string.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_string.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_trim.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_trim_dynamic.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_trim_string.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_fll_identify.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_rip.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_rip_nulless.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_rip.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_rip_nulless.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_seek_line_to_utf_character.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_seek_line_until_graph.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_seek_line_until_graph_non.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_seek_to_utf_character.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_rip.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_rip_nulless.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_seek_line_to_utf_character.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_seek_line_until_graph.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_seek_line_until_graph_non.3 [new file with mode: 0644]
level_1/fl_string/data/documentation/man/man3/fl_string_seek_to_utf_character.3 [new file with mode: 0644]
level_1/fl_utf/data/build/defines
level_1/fl_utf/data/build/settings
level_1/fl_utf/data/documentation/man/man3/fl_utf_string_compare.3 [new file with mode: 0644]
level_1/fl_utf/data/documentation/man/man3/fl_utf_string_compare_trim.3 [new file with mode: 0644]
level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_compare.3 [new file with mode: 0644]
level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_compare_trim.3 [new file with mode: 0644]
level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_partial_compare.3 [new file with mode: 0644]
level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_partial_compare_trim.3 [new file with mode: 0644]
level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_rip.3 [new file with mode: 0644]
level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_rip_nulless.3 [new file with mode: 0644]
level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_seek_line_to_char.3 [new file with mode: 0644]
level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_seek_line_until_graph.3 [new file with mode: 0644]
level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_seek_line_until_graph_non.3 [new file with mode: 0644]
level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_seek_to_char.3 [new file with mode: 0644]
level_1/fl_utf/data/documentation/man/man3/fl_utf_string_rip.3 [new file with mode: 0644]
level_1/fl_utf/data/documentation/man/man3/fl_utf_string_rip_nulless.3 [new file with mode: 0644]
level_1/fl_utf/data/documentation/man/man3/fl_utf_string_seek_line_to_char.3 [new file with mode: 0644]
level_1/fl_utf/data/documentation/man/man3/fl_utf_string_seek_line_until_graph.3 [new file with mode: 0644]
level_1/fl_utf/data/documentation/man/man3/fl_utf_string_seek_line_until_graph_non.3 [new file with mode: 0644]
level_1/fl_utf/data/documentation/man/man3/fl_utf_string_seek_to_char.3 [new file with mode: 0644]
level_1/fl_utf_file/data/build/defines
level_1/fl_utf_file/data/build/settings
level_1/fl_utf_file/data/documentation/man/man3/fl_utf_file_read.3 [new file with mode: 0644]
level_1/fl_utf_file/data/documentation/man/man3/fl_utf_file_read_block.3 [new file with mode: 0644]
level_1/fl_utf_file/data/documentation/man/man3/fl_utf_file_read_until.3 [new file with mode: 0644]
level_1/fl_utf_file/data/documentation/man/man3/fl_utf_file_write.3 [new file with mode: 0644]
level_1/fl_utf_file/data/documentation/man/man3/fl_utf_file_write_block.3 [new file with mode: 0644]
level_1/fl_utf_file/data/documentation/man/man3/fl_utf_file_write_range.3 [new file with mode: 0644]
level_1/fl_utf_file/data/documentation/man/man3/fl_utf_file_write_until.3 [new file with mode: 0644]
level_2/fll_control_group/data/build/settings
level_2/fll_control_group/data/documentation/man/man3/fll_control_group_prepare.3 [new file with mode: 0644]
level_2/fll_error/data/build/defines
level_2/fll_error/data/build/settings
level_2/fll_error/data/documentation/man/man3/fll_error_file_print.3 [new file with mode: 0644]
level_2/fll_error/data/documentation/man/man3/fll_error_parameter_integer_print.3 [new file with mode: 0644]
level_2/fll_error/data/documentation/man/man3/fll_error_print.3 [new file with mode: 0644]
level_2/fll_execute/data/build/settings
level_2/fll_execute/data/documentation/man/man3/fll_execute_arguments_add.3 [new file with mode: 0644]
level_2/fll_execute/data/documentation/man/man3/fll_execute_arguments_add_parameter.3 [new file with mode: 0644]
level_2/fll_execute/data/documentation/man/man3/fll_execute_arguments_add_parameter_set.3 [new file with mode: 0644]
level_2/fll_execute/data/documentation/man/man3/fll_execute_arguments_add_set.3 [new file with mode: 0644]
level_2/fll_execute/data/documentation/man/man3/fll_execute_into.3 [new file with mode: 0644]
level_2/fll_execute/data/documentation/man/man3/fll_execute_program.3 [new file with mode: 0644]
level_2/fll_file/data/build/defines
level_2/fll_file/data/build/settings
level_2/fll_file/data/documentation/man/man3/fll_file_mode_set_all.3 [new file with mode: 0644]
level_2/fll_file/data/documentation/man/man3/fll_file_move.3 [new file with mode: 0644]
level_2/fll_file/data/documentation/man/man3/fll_file_role_change_all.3 [new file with mode: 0644]
level_2/fll_fss/data/build/defines
level_2/fll_fss/data/build/settings
level_2/fll_fss/data/documentation/man/man3/fll_fss_basic_list_read.3 [new file with mode: 0644]
level_2/fll_fss/data/documentation/man/man3/fll_fss_basic_list_write.3 [new file with mode: 0644]
level_2/fll_fss/data/documentation/man/man3/fll_fss_basic_read.3 [new file with mode: 0644]
level_2/fll_fss/data/documentation/man/man3/fll_fss_basic_write.3 [new file with mode: 0644]
level_2/fll_fss/data/documentation/man/man3/fll_fss_embedded_list_read.3 [new file with mode: 0644]
level_2/fll_fss/data/documentation/man/man3/fll_fss_embedded_list_write.3 [new file with mode: 0644]
level_2/fll_fss/data/documentation/man/man3/fll_fss_extended_list_read.3 [new file with mode: 0644]
level_2/fll_fss/data/documentation/man/man3/fll_fss_extended_list_write.3 [new file with mode: 0644]
level_2/fll_fss/data/documentation/man/man3/fll_fss_extended_read.3 [new file with mode: 0644]
level_2/fll_fss/data/documentation/man/man3/fll_fss_extended_write.3 [new file with mode: 0644]
level_2/fll_fss/data/documentation/man/man3/fll_fss_identify.3 [new file with mode: 0644]
level_2/fll_fss/data/documentation/man/man3/fll_fss_payload_read.3 [new file with mode: 0644]
level_2/fll_fss/data/documentation/man/man3/fll_fss_payload_write.3 [new file with mode: 0644]
level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch.3 [new file with mode: 0644]
level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_apart.3 [new file with mode: 0644]
level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_map.3 [new file with mode: 0644]
level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_map_apart.3 [new file with mode: 0644]
level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_map_mash.3 [new file with mode: 0644]
level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_map_mash_apart.3 [new file with mode: 0644]
level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_map_together.3 [new file with mode: 0644]
level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_mash.3 [new file with mode: 0644]
level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_mash_apart.3 [new file with mode: 0644]
level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_together.3 [new file with mode: 0644]
level_2/fll_fss/data/documentation/man/man3/fll_fss_status_string_from.3 [new file with mode: 0644]
level_2/fll_fss/data/documentation/man/man3/fll_fss_status_string_to.3 [new file with mode: 0644]
level_2/fll_fss_status_string/data/build/defines
level_2/fll_fss_status_string/data/build/settings
level_2/fll_iki/data/build/defines
level_2/fll_iki/data/build/settings
level_2/fll_iki/data/documentation/man/man3/fll_iki_content_escape.3 [new file with mode: 0644]
level_2/fll_iki/data/documentation/man/man3/fll_iki_content_partial_escape.3 [new file with mode: 0644]
level_2/fll_iki/data/documentation/man/man3/fll_iki_content_partial_unescape.3 [new file with mode: 0644]
level_2/fll_iki/data/documentation/man/man3/fll_iki_content_unescape.3 [new file with mode: 0644]
level_2/fll_path/data/build/defines
level_2/fll_path/data/build/settings
level_2/fll_path/data/documentation/man/man3/fll_path_canonical.3 [new file with mode: 0644]
level_2/fll_print/data/build/defines
level_2/fll_print/data/build/settings
level_2/fll_print/data/documentation/man/man3/fll_print.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_character.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_character_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_dynamic.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_dynamic_partial.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_dynamic_partial_raw.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_dynamic_partial_raw_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_dynamic_partial_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_dynamic_raw.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_dynamic_raw_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_dynamic_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_except.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_except_dynamic.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_except_dynamic_partial.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_except_dynamic_partial_raw.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_except_dynamic_partial_raw_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_except_dynamic_partial_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_except_dynamic_raw.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_except_dynamic_raw_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_except_dynamic_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_except_in.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_except_in_dynamic.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_except_in_dynamic_partial.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_except_in_dynamic_partial_raw.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_except_in_dynamic_partial_raw_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_except_in_dynamic_partial_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_except_in_dynamic_raw.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_except_in_dynamic_raw_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_except_in_dynamic_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_except_in_raw.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_except_in_raw_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_except_in_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_except_raw.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_except_raw_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_except_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_format.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_format_convert.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_raw.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_raw_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_raw_terminated.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_safely_terminated.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_string_va.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_terminated.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_dynamic.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_dynamic_partial.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_dynamic_partial_raw.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_dynamic_partial_raw_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_dynamic_partial_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_dynamic_raw.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_dynamic_raw_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_dynamic_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_except.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_dynamic.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_dynamic_partial.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_dynamic_partial_raw.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_dynamic_partial_raw_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_dynamic_partial_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_dynamic_raw.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_dynamic_raw_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_dynamic_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_dynamic.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_dynamic_partial.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_dynamic_partial_raw.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_dynamic_partial_raw_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_dynamic_partial_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_dynamic_raw.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_dynamic_raw_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_dynamic_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_raw.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_raw_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_raw.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_raw_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_raw.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_raw_safely.3 [new file with mode: 0644]
level_2/fll_print/data/documentation/man/man3/fll_print_trim_safely.3 [new file with mode: 0644]
level_2/fll_program/data/build/defines
level_2/fll_program/data/build/settings
level_2/fll_program/data/documentation/man/man3/fll_program_data_delete.3 [new file with mode: 0644]
level_2/fll_program/data/documentation/man/man3/fll_program_data_destroy.3 [new file with mode: 0644]
level_2/fll_program/data/documentation/man/man3/fll_program_parameter_additional_append.3 [new file with mode: 0644]
level_2/fll_program/data/documentation/man/man3/fll_program_parameter_additional_mash.3 [new file with mode: 0644]
level_2/fll_program/data/documentation/man/man3/fll_program_parameter_additional_rip.3 [new file with mode: 0644]
level_2/fll_program/data/documentation/man/man3/fll_program_parameter_additional_rip_mash.3 [new file with mode: 0644]
level_2/fll_program/data/documentation/man/man3/fll_program_parameter_long_print_cannot_use_with.3 [new file with mode: 0644]
level_2/fll_program/data/documentation/man/man3/fll_program_parameter_process.3 [new file with mode: 0644]
level_2/fll_program/data/documentation/man/man3/fll_program_parameter_process_empty.3 [new file with mode: 0644]
level_2/fll_program/data/documentation/man/man3/fll_program_print_help_header.3 [new file with mode: 0644]
level_2/fll_program/data/documentation/man/man3/fll_program_print_help_option.3 [new file with mode: 0644]
level_2/fll_program/data/documentation/man/man3/fll_program_print_help_option_long.3 [new file with mode: 0644]
level_2/fll_program/data/documentation/man/man3/fll_program_print_help_option_other.3 [new file with mode: 0644]
level_2/fll_program/data/documentation/man/man3/fll_program_print_help_usage.3 [new file with mode: 0644]
level_2/fll_program/data/documentation/man/man3/fll_program_print_version.3 [new file with mode: 0644]
level_2/fll_program/data/documentation/man/man3/fll_program_standard_setdown.3 [new file with mode: 0644]
level_2/fll_program/data/documentation/man/man3/fll_program_standard_setup.3 [new file with mode: 0644]
level_2/fll_program/data/documentation/man/man3/fll_program_standard_signal_received.3 [new file with mode: 0644]
level_2/fll_program/data/documentation/man/man3/fll_program_standard_signal_state.3 [new file with mode: 0644]
level_2/fll_status_string/data/build/defines
level_2/fll_status_string/data/build/settings
level_2/fll_status_string/data/documentation/man/man3/fll_status_string_from.3 [new file with mode: 0644]

index 262cb30138c6146d0ac49327eff0020b316872c5..af964d2106986ee54a859b9436800650d55c8ff9 100644 (file)
@@ -92,6 +92,8 @@ build_sources_headers utf.h utf/common.h utf/convert.h utf/dynamic.h utf/is.h ut
 
 build_sources_headers-thread thread.h thread/attribute.h thread/barrier.h thread/barrier_attribute.h thread/condition.h thread/condition_attribute.h thread/id.h thread/key.h thread/lock.h thread/lock_attribute.h thread/mutex.h thread/mutex_attribute.h thread/once.h thread/semaphore.h thread/set.h thread/spin.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
index 8ee2f2a2d8a4e974dca0f16e2703679b8a178be1..f324c709aa37213d731280e5b21e4e283bdf54d4 100644 (file)
@@ -59,6 +59,8 @@ build_sources_headers string.h
 build_sources_headers utf.h
 build_sources_headers utf_file.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
index 01436fee9ba44d877e0c04a3dbe8650e3c0ee1da..6d827e728f083005c89476eee35291781164d6c6 100644 (file)
@@ -58,6 +58,8 @@ build_sources_headers print.h
 build_sources_headers program.h program/common.h
 build_sources_headers status_string.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
index a92b46e96778135c034050a6ea06fc9cdda48311..b388edd5317e2e229d0cfd7d9b6d6b80c095dd48 100644 (file)
@@ -141,6 +141,8 @@ build_sources_headers level_2/status_string.h
 
 build_sources_headers-thread level_0/thread.h level_0/thread/attribute.h level_0/thread/barrier.h level_0/thread/barrier_attribute.h level_0/thread/condition.h level_0/thread/condition_attribute.h level_0/thread/id.h level_0/thread/key.h level_0/thread/lock.h level_0/thread/lock_attribute.h level_0/thread/mutex.h level_0/thread/mutex_attribute.h level_0/thread/once.h level_0/thread/semaphore.h level_0/thread/set.h level_0/thread/spin.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index 8faf25c0aa2284479d4c80e6fb7d78a282ad97fa..11f929891158c5184401425f15af01bce00392cc 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library account.c private-account.c
 
 build_sources_headers account.h account/common.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_0/f_account/data/documentation/man/man3/f_account_by_id.3 b/level_0/f_account/data/documentation/man/man3/f_account_by_id.3
new file mode 100644 (file)
index 0000000..aa4035b
--- /dev/null
@@ -0,0 +1,50 @@
+.TH f_account_by_id "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_account_by_id
+.SH SYNOPSIS
+.nf
+.B #include <account.h>
+.sp
+\fBf_status_t f_account_by_id\fP(
+    \fBconst uid_t        \fP\fIid\fP,
+    \fBf_account_t *const \fP\fIaccount\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provides account related functionality (users, groups, roles, etc..).
+.PP
+POSIX as of POSIX.1-2001, at least getpwnam() does not call "not found" an error. This uses getpwnam_r() in place of getpwnam() (and similar) as the safest way to avoid this bad design. Get the user account by the user id.
+.SH PARAMETERS
+.TP
+.B id
+The id of the user.
+
+.TP
+.B account
+This is replaced with by the account information. All strings will be NULL terminated.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_buffer_too_small\fP (with error bit) if the buffer is too small to store the account data.
+.br
+\fBF_file_descriptor_max\fP (with error bit) if max file descriptors is reached.
+.br
+\fBF_file_open_max\fP (with error bit) too many open files.
+.br
+\fBF_input_output\fP (with error bit) if an I/O error occurred.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_account/data/documentation/man/man3/f_account_by_name.3 b/level_0/f_account/data/documentation/man/man3/f_account_by_name.3
new file mode 100644 (file)
index 0000000..15bf6a4
--- /dev/null
@@ -0,0 +1,48 @@
+.TH f_account_by_name "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_account_by_name
+.SH SYNOPSIS
+.nf
+.B #include <account.h>
+.sp
+\fBf_status_t f_account_by_name\fP(
+    \fBconst f_string_static_t \fP\fIname\fP,
+    \fBf_account_t *const      \fP\fIaccount\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the user account by the user name.
+.SH PARAMETERS
+.TP
+.B name
+The user name. The name must be NULL terminated.
+
+.TP
+.B account
+This is replaced with by the account information. All strings will be NULL terminated.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_buffer_too_small\fP (with error bit) if the buffer is too small to store the account data.
+.br
+\fBF_file_descriptor_max\fP (with error bit) if max file descriptors is reached.
+.br
+\fBF_file_open_max\fP (with error bit) too many open files.
+.br
+\fBF_input_output\fP (with error bit) if an I/O error occurred.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_account/data/documentation/man/man3/f_account_group_id_by_name.3 b/level_0/f_account/data/documentation/man/man3/f_account_group_id_by_name.3
new file mode 100644 (file)
index 0000000..75dd4d2
--- /dev/null
@@ -0,0 +1,48 @@
+.TH f_account_group_id_by_name "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_account_group_id_by_name
+.SH SYNOPSIS
+.nf
+.B #include <account.h>
+.sp
+\fBf_status_t f_account_group_id_by_name\fP(
+    \fBconst f_string_static_t \fP\fIname\fP,
+    \fBgid_t *const            \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the account group id by the group name.
+.SH PARAMETERS
+.TP
+.B name
+The group name. The name must be NULL terminated.
+
+.TP
+.B id
+The id associated with the given name.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_buffer_too_small\fP (with error bit) if the buffer is too small to store the account data.
+.br
+\fBF_file_descriptor_max\fP (with error bit) if max file descriptors is reached.
+.br
+\fBF_file_open_max\fP (with error bit) too many open files.
+.br
+\fBF_input_output\fP (with error bit) if an I/O error occurred.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_account/data/documentation/man/man3/f_account_group_name_by_id.3 b/level_0/f_account/data/documentation/man/man3/f_account_group_name_by_id.3
new file mode 100644 (file)
index 0000000..77d487d
--- /dev/null
@@ -0,0 +1,48 @@
+.TH f_account_group_name_by_id "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_account_group_name_by_id
+.SH SYNOPSIS
+.nf
+.B #include <account.h>
+.sp
+\fBf_status_t f_account_group_name_by_id\fP(
+    \fBconst gid_t               \fP\fIid\fP,
+    \fBf_string_dynamic_t *const \fP\fIname\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the account group name by the group id.
+.SH PARAMETERS
+.TP
+.B id
+The id of the group.
+
+.TP
+.B name
+This is replaced with by the group name. The name will be NULL terminated after the name.used.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_buffer_too_small\fP (with error bit) if the buffer is too small to store the account data.
+.br
+\fBF_file_descriptor_max\fP (with error bit) if max file descriptors is reached.
+.br
+\fBF_file_open_max\fP (with error bit) too many open files.
+.br
+\fBF_input_output\fP (with error bit) if an I/O error occurred.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_account/data/documentation/man/man3/f_account_id_by_name.3 b/level_0/f_account/data/documentation/man/man3/f_account_id_by_name.3
new file mode 100644 (file)
index 0000000..985ee14
--- /dev/null
@@ -0,0 +1,48 @@
+.TH f_account_id_by_name "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_account_id_by_name
+.SH SYNOPSIS
+.nf
+.B #include <account.h>
+.sp
+\fBf_status_t f_account_id_by_name\fP(
+    \fBconst f_string_static_t \fP\fIname\fP,
+    \fBuid_t *const            \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the user account id by the user name.
+.SH PARAMETERS
+.TP
+.B name
+The user name. The name must be NULL terminated.
+
+.TP
+.B id
+The id associated with the given name.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_buffer_too_small\fP (with error bit) if the buffer is too small to store the account data.
+.br
+\fBF_file_descriptor_max\fP (with error bit) if max file descriptors is reached.
+.br
+\fBF_file_open_max\fP (with error bit) too many open files.
+.br
+\fBF_input_output\fP (with error bit) if an I/O error occurred.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_account/data/documentation/man/man3/f_account_name_by_id.3 b/level_0/f_account/data/documentation/man/man3/f_account_name_by_id.3
new file mode 100644 (file)
index 0000000..12f09a0
--- /dev/null
@@ -0,0 +1,48 @@
+.TH f_account_name_by_id "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_account_name_by_id
+.SH SYNOPSIS
+.nf
+.B #include <account.h>
+.sp
+\fBf_status_t f_account_name_by_id\fP(
+    \fBconst uid_t               \fP\fIid\fP,
+    \fBf_string_dynamic_t *const \fP\fIname\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the user account name by the user id.
+.SH PARAMETERS
+.TP
+.B id
+The id of the user.
+
+.TP
+.B name
+This is replaced with by the user name. The name will be NULL terminated after the name.used.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_buffer_too_small\fP (with error bit) if the buffer is too small to store the account data.
+.br
+\fBF_file_descriptor_max\fP (with error bit) if max file descriptors is reached.
+.br
+\fBF_file_open_max\fP (with error bit) too many open files.
+.br
+\fBF_input_output\fP (with error bit) if an I/O error occurred.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 34fa4d7a99b04d430bcfe17bb91a6fb9755f9de1..85021416133f8d7c635b5e0a05c5fdaf82543c5a 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library capability.c
 
 build_sources_headers capability.h capability/common.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_ambient_get.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_ambient_get.3
new file mode 100644 (file)
index 0000000..eab6ae4
--- /dev/null
@@ -0,0 +1,46 @@
+.TH f_capability_ambient_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_ambient_get
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_ambient_get\fP(
+    \fBconst f_capability_value_t \fP\fIvalue\fP,
+    \fBint *const                 \fP\fIambient\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provides capability related functionality.
+.PP
+Capabilities are POSIX compliant as of POSIX 1003.1e (as a draft). Because it is only in POSIX as a draft, they are available via libcap instead of libc. Special linking is necessary and this project provides a wrapper that makes capabilities easier to work with whether libcap (and therefore capabilities) is available or not.
+.PP
+When di_libcap is defined (-D_di_libcap_) then many of the structures and functions provided here are stubs. Compilations with di_libcap will not be binary compatible with compilations without di_libcap.
+.PP
+The libcap documentation claims that the Linux kernel fails to honor the POSIX semantics for setting capabilities and securebits in the presence of pthreads. This is because changing capability sets, by default, only affects the running thread. The libcap documentation further claims that "To be meaningfully secure, however, the capability sets should be mirrored by all threads...". This is untrue and should be considered with caution (for example, a init program (like sysvinit) may want to run different threads with different capabilities). The libcap povides a separate libray "libpsx", for threads and then suggests linking with "-lcap -lpsx -lpthread --wrap=pthread_create" to "work-around" the perceived limitation. Use such a work-around with caution. This project makes no assumptions that all threads must share capabilities. This project instead recommends explicitly setting the capabilities for each thread (when capabilities change, then change all appropriate threads). Set the ambient capability.
+.SH PARAMETERS
+.TP
+.B value
+The capability value.
+
+.TP
+.B ambient
+The retrieved ambient value.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_supported_not\fP (with error bit) if the system does not support ambient capabilities.
+.br
+\fBF_failure\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_ambient_reset.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_ambient_reset.3
new file mode 100644 (file)
index 0000000..e89804e
--- /dev/null
@@ -0,0 +1,32 @@
+.TH f_capability_ambient_reset "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_ambient_reset
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_ambient_reset\fP(
+    \fBvoid     \fP\fI\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Reset the ambient capability.
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_memory_not\fP (with error bit) if a out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if the file system does not permit this operation.
+.br
+\fBF_failure\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_ambient_set.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_ambient_set.3
new file mode 100644 (file)
index 0000000..001a556
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_capability_ambient_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_ambient_set
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_ambient_set\fP(
+    \fBconst f_capability_value_t      \fP\fIvalue\fP,
+    \fBconst f_capability_flag_value_t \fP\fIvalue_flag\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the ambient capability.
+.SH PARAMETERS
+.TP
+.B value
+The capability value.
+
+.TP
+.B value_flag
+The capability flag value.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_memory_not\fP (with error bit) if a out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if the file system does not permit this operation.
+.br
+\fBF_failure\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_clear.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_clear.3
new file mode 100644 (file)
index 0000000..4300615
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_capability_clear "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_clear
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_clear\fP(
+    \fBf_capability_t *const \fP\fIcapability\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Clear the capability structure.
+.SH PARAMETERS
+.TP
+.B capability
+The capability to clear.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_clear_flag.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_clear_flag.3
new file mode 100644 (file)
index 0000000..2e9e2e7
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_capability_clear_flag "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_clear_flag
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_clear_flag\fP(
+    \fBconst f_capability_flag_t \fP\fIflag\fP,
+    \fBf_capability_t *const     \fP\fIcapability\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Clear the capability flag.
+.SH PARAMETERS
+.TP
+.B flag
+The flag to clear.
+
+.TP
+.B capability
+The capability to clear the flag of.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_memory_not\fP (with error bit) if a out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_compare.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_compare.3
new file mode 100644 (file)
index 0000000..496b34c
--- /dev/null
@@ -0,0 +1,45 @@
+.TH f_capability_compare "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_compare
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_compare\fP(
+    \fBconst f_capability_t \fP\fIcapability1\fP,
+    \fBconst f_capability_t \fP\fIcapability2\fP,
+    \fBint *const           \fP\fIflags\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two capability structures.
+.SH PARAMETERS
+.TP
+.B capability1
+The first capability to compare.
+
+.TP
+.B capability2
+The second capability to compare.
+
+.TP
+.B flags
+(optional) This represents which of the flags that differ on miss. Set to NULL to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP on match.
+.br
+\fBF_equal_to_not\fP on miss.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_copy.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_copy.3
new file mode 100644 (file)
index 0000000..2e3ec8a
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_capability_copy "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_copy
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_copy\fP(
+    \fBconst f_capability_t  \fP\fIsource\fP,
+    \fBf_capability_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Copy the capability structure.
+.SH PARAMETERS
+.TP
+.B source
+The capability to copy from.
+
+.TP
+.B destination
+The capability to copy to. This must be freed via f_capability_delete() when finished with.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_memory_not\fP (with error bit) if a out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_copy_external.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_copy_external.3
new file mode 100644 (file)
index 0000000..5699ae8
--- /dev/null
@@ -0,0 +1,50 @@
+.TH f_capability_copy_external "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_copy_external
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_copy_external\fP(
+    \fBconst f_capability_t \fP\fIcapability\fP,
+    \fBconst ssize_t        \fP\fImax\fP,
+    \fBvoid *const          \fP\fIexternal\fP,
+    \fBssize_t *const       \fP\fIsize\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Copy an internally represented capability into an externally represented capability.
+.SH PARAMETERS
+.TP
+.B capability
+The (internal) capability the (external) capability is copied from.
+
+.TP
+.B max
+The the maximum buffer length (in bytes) allowed in the (external) capability. Use f_capability_size() to determine the maximum size required to hold capability.
+
+.TP
+.B external
+The (external) capability the (internal) capability is copied to.
+
+.TP
+.B size
+(optional) The size (in bytes) copied into the (external) capability. Set to NULL to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_range_not\fP (with error bit) on out of range when processing (external) capability.
+.br
+\fBF_failure\fP (with error bit) on failure to get size.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_copy_internal.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_copy_internal.3
new file mode 100644 (file)
index 0000000..0533d53
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_capability_copy_internal "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_copy_internal
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_copy_internal\fP(
+    \fBconst void *const     \fP\fIexternal\fP,
+    \fBf_capability_t *const \fP\fIcapability\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Copy an externally represented capability into an internally represented capability.
+.SH PARAMETERS
+.TP
+.B external
+A pointer to user allocated memory representing the (external) capability. This must have been popilated by cap_copy_ext() or f_capability_copy_external().
+
+.TP
+.B capability
+The (internal) capability the (external) capability is copied into. This must be freed via f_capability_delete() when finished with.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_range_not\fP (with error bit) on out of range when processing (external) capability.
+.br
+\fBF_failure\fP (with error bit) on failure to get size.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_delete.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_delete.3
new file mode 100644 (file)
index 0000000..0d1979d
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_capability_delete "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_delete
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_delete\fP(
+    \fBf_capability_t *const \fP\fIcapability\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Free the capability structure.
+.SH PARAMETERS
+.TP
+.B capability
+The capability to delete. Pointer address is set to 0 on success.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_memory_not\fP (with error bit) if a out of memory (which doesn't make sense here but man page includes this).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_file_descriptor_get.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_file_descriptor_get.3
new file mode 100644 (file)
index 0000000..0573cbe
--- /dev/null
@@ -0,0 +1,54 @@
+.TH f_capability_file_descriptor_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_file_descriptor_get
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_file_descriptor_get\fP(
+    \fBconst int             \fP\fIdescriptor\fP,
+    \fBf_capability_t *const \fP\fIcapability\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the capability of a file represented by a file descriptor.
+.SH PARAMETERS
+.TP
+.B descriptor
+The file descriptor.
+
+.TP
+.B capability
+The retrieved capability. This must be freed via f_capability_delete() when finished with.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_descriptor_not\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_directory_not\fP (with error bit) if a directory containing the file does not exist.
+.br
+\fBF_file_found_not\fP (with error bit) if file was not found.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_memory_not\fP (with error bit) if a out of memory.
+.br
+\fBF_name_not\fP (with error bit) if the file name is too long.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if the file system does not permit this operation.
+.br
+\fBF_supported_not\fP (with error bit) if the file system does not support this operation.
+.br
+\fBF_failure\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_file_descriptor_set.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_file_descriptor_set.3
new file mode 100644 (file)
index 0000000..f41d93e
--- /dev/null
@@ -0,0 +1,54 @@
+.TH f_capability_file_descriptor_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_file_descriptor_set
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_file_descriptor_set\fP(
+    \fBconst int            \fP\fIdescriptor\fP,
+    \fBconst f_capability_t \fP\fIcapability\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the capability of a file represented by a file descriptor.
+.SH PARAMETERS
+.TP
+.B descriptor
+The file descriptor.
+
+.TP
+.B capability
+The capability to set.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_descriptor_not\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_directory_not\fP (with error bit) if a directory containing the file does not exist.
+.br
+\fBF_file_found_not\fP (with error bit) if file was not found.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_memory_not\fP (with error bit) if a out of memory.
+.br
+\fBF_name_not\fP (with error bit) if the file name is too long.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if the file system does not permit this operation.
+.br
+\fBF_supported_not\fP (with error bit) if the file system does not support this operation.
+.br
+\fBF_failure\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_file_get.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_file_get.3
new file mode 100644 (file)
index 0000000..cd65af0
--- /dev/null
@@ -0,0 +1,54 @@
+.TH f_capability_file_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_file_get
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_file_get\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBf_capability_t *const   \fP\fIcapability\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the capability of a file represented by a file path.
+.SH PARAMETERS
+.TP
+.B path
+The file path.
+
+.TP
+.B capability
+The retrieved capability. This must be freed via f_capability_delete() when finished with.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_descriptor_not\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_directory_not\fP (with error bit) if a directory containing the file does not exist.
+.br
+\fBF_file_found_not\fP (with error bit) if file was not found.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_memory_not\fP (with error bit) if a out of memory.
+.br
+\fBF_name_not\fP (with error bit) if the file name is too long.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if the file system does not permit this operation.
+.br
+\fBF_supported_not\fP (with error bit) if the file system does not support this operation.
+.br
+\fBF_failure\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_file_set.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_file_set.3
new file mode 100644 (file)
index 0000000..1d9a3aa
--- /dev/null
@@ -0,0 +1,54 @@
+.TH f_capability_file_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_file_set
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_file_set\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst f_capability_t    \fP\fIcapability\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the capability of a file represented by a file path.
+.SH PARAMETERS
+.TP
+.B path
+The file path.
+
+.TP
+.B capability
+The capability to set.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_descriptor_not\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_directory_not\fP (with error bit) if a directory containing the file does not exist.
+.br
+\fBF_file_found_not\fP (with error bit) if file was not found.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_memory_not\fP (with error bit) if a out of memory.
+.br
+\fBF_name_not\fP (with error bit) if the file name is too long.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if the file system does not permit this operation.
+.br
+\fBF_supported_not\fP (with error bit) if the file system does not support this operation.
+.br
+\fBF_failure\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_flag_get.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_flag_get.3
new file mode 100644 (file)
index 0000000..dda1988
--- /dev/null
@@ -0,0 +1,48 @@
+.TH f_capability_flag_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_flag_get
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_flag_get\fP(
+    \fBconst f_capability_t             \fP\fIcapability\fP,
+    \fBconst f_capability_value_t       \fP\fIcode\fP,
+    \fBconst f_capability_flag_t        \fP\fIflag\fP,
+    \fBf_capability_flag_value_t *const \fP\fIenabled\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the value of a flag from the capability structure.
+.SH PARAMETERS
+.TP
+.B capability
+The capability to get the code of.
+
+.TP
+.B code
+The capability code to get the flag of.
+
+.TP
+.B flag
+The flag of the capability code to get the value of.
+
+.TP
+.B enabled
+The determined capability code flag value. This is TRUE when the flag is enabled and FALSE otherwise.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_flag_set.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_flag_set.3
new file mode 100644 (file)
index 0000000..7b8cc11
--- /dev/null
@@ -0,0 +1,48 @@
+.TH f_capability_flag_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_flag_set
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_flag_set\fP(
+    \fBconst f_capability_flag_t       \fP\fIflag\fP,
+    \fBconst f_capability_flag_value_t \fP\fIenabled\fP,
+    \fBconst f_int32s_t                \fP\fIcodes\fP,
+    \fBf_capability_t *const           \fP\fIcapability\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the value of a flags from the capability structure.
+.SH PARAMETERS
+.TP
+.B flag
+The flag of the capability code to set the value of.
+
+.TP
+.B enabled
+The capability code flag value to set. This is TRUE when the flag is enabled and FALSE otherwise.
+
+.TP
+.B codes
+An array of codes to set the capability flag value of.
+
+.TP
+.B capability
+The capability to set the flag of.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_from_name.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_from_name.3
new file mode 100644 (file)
index 0000000..04020cc
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_capability_from_name "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_from_name
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_from_name\fP(
+    \fBconst f_string_static_t     \fP\fIname\fP,
+    \fBf_capability_value_t *const \fP\fIcode\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the capability code from the capability name.
+.SH PARAMETERS
+.TP
+.B name
+The name of the capability (must be all lower case).
+
+.TP
+.B code
+(optional) The determined code. Set to NULL to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_memory_not\fP (with error bit) if a out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_from_text.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_from_text.3
new file mode 100644 (file)
index 0000000..a945382
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_capability_from_text "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_from_text
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_from_text\fP(
+    \fBconst f_string_static_t \fP\fItext\fP,
+    \fBf_capability_t *const   \fP\fIcapability\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the capability represented by the given string.
+.SH PARAMETERS
+.TP
+.B text
+The human-readable string representing the capabilities (such as "cap_chown+ep"). This must be a NULL terminated string.
+
+.TP
+.B capability
+The determined capabilities. This must be freed via f_capability_delete().
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_memory_not\fP (with error bit) if a out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_groups_set.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_groups_set.3
new file mode 100644 (file)
index 0000000..d02a4f0
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_capability_groups_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_groups_set
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_groups_set\fP(
+    \fBconst gid_t  \fP\fIid_group\fP,
+    \fBconst size_t \fP\fItotal\fP,
+    \fBconst gid_t  \fP\fIid_groups\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the group IDs.
+.PP
+This is the same as setuid(), except: 1) Helps ensure the correct effective capability is used to perform the operation. 2) All "effective" capabilities are lowered after this call.
+.SH PARAMETERS
+.TP
+.B id_group
+The group ID (as in setgid()).
+
+.TP
+.B total
+The total number of groups in id_groups.
+
+.TP
+.B id_groups
+The array of supplementary group IDs (as in setgroups()).
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_memory_not\fP (with error bit) if a out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if the file system does not permit this operation.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_initialize.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_initialize.3
new file mode 100644 (file)
index 0000000..249ad51
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_capability_initialize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_initialize
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_initialize\fP(
+    \fBf_capability_t *const \fP\fIcapability\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Initialize the capability structure.
+.SH PARAMETERS
+.TP
+.B capability
+The capability to initialize. This must be freed via f_capability_delete() when finished with.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_memory_not\fP (with error bit) if a out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on failure to initialize.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_mode_get.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_mode_get.3
new file mode 100644 (file)
index 0000000..fe3be7d
--- /dev/null
@@ -0,0 +1,31 @@
+.TH f_capability_mode_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_mode_get
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_mode_get\fP(
+    \fBf_capability_mode_t *const \fP\fImode\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the mode for the current process.
+.SH PARAMETERS
+.TP
+.B mode
+The capability mode.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_mode_get_name.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_mode_get_name.3
new file mode 100644 (file)
index 0000000..f033059
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_capability_mode_get_name "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_mode_get_name
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_mode_get_name\fP(
+    \fBconst f_capability_mode_t  \fP\fImode\fP,
+    \fBf_string_constant_t *const \fP\fIname\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the name of the mode.
+.SH PARAMETERS
+.TP
+.B mode
+The capability mode.
+
+.TP
+.B name
+The name of the mode. This is a NULL terminated string.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_mode_set.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_mode_set.3
new file mode 100644 (file)
index 0000000..d66d11d
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_capability_mode_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_mode_set
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_mode_set\fP(
+    \fBconst f_capability_mode_t \fP\fImode\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the mode for the current process.
+.SH PARAMETERS
+.TP
+.B mode
+The capability mode.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_memory_not\fP (with error bit) if a out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if the file system does not permit this operation.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_owner_get.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_owner_get.3
new file mode 100644 (file)
index 0000000..2ab62ea
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_capability_owner_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_owner_get
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_owner_get\fP(
+    \fBconst f_capability_t \fP\fIcapability\fP,
+    \fBuid_t *const         \fP\fIid_user\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the namespace owner for the current process.
+.SH PARAMETERS
+.TP
+.B capability
+The capability.
+
+.TP
+.B id_user
+The ID of the user.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_owner_set.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_owner_set.3
new file mode 100644 (file)
index 0000000..5f6e2ac
--- /dev/null
@@ -0,0 +1,56 @@
+.TH f_capability_owner_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_owner_set
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_owner_set\fP(
+    \fBconst f_capability_t \fP\fIcapability\fP,
+    \fBconst uid_t          \fP\fIid_user\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the namespace owner for the current process.
+.PP
+Note: the return codes may not make sense. the documentation for cap_set_owner() designates them as the return codes. however, it is suspected that this is not the case. For consistency with the documentation, return the codes anyway.
+.SH PARAMETERS
+.TP
+.B capability
+The capability.
+
+.TP
+.B id_user
+The ID of the user.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_descriptor_not\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_directory_not\fP (with error bit) if a directory containing the file does not exist.
+.br
+\fBF_file_found_not\fP (with error bit) if file was not found.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_memory_not\fP (with error bit) if a out of memory.
+.br
+\fBF_name_not\fP (with error bit) if the file name is too long.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if the file system does not permit this operation.
+.br
+\fBF_supported_not\fP (with error bit) if the file system does not support this operation.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_process_bound_drop.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_process_bound_drop.3
new file mode 100644 (file)
index 0000000..3f77bce
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_capability_process_bound_drop "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_process_bound_drop
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_process_bound_drop\fP(
+    \fBf_capability_value_t \fP\fIvalue\fP,
+    \fBint *const           \fP\fIbound\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Drop the bound for the process.
+.PP
+This will lower the specified bounding set capability if appropriate permission exist (the prevailing effective capability set must have a raised CAP_SETPCAP).
+.SH PARAMETERS
+.TP
+.B value
+The capability code to get the bound for.
+
+.TP
+.B bound
+The determined bound value.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_memory_not\fP (with error bit) if a out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if the file system does not permit this operation.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_process_bound_get.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_process_bound_get.3
new file mode 100644 (file)
index 0000000..c326d60
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_capability_process_bound_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_process_bound_get
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_process_bound_get\fP(
+    \fBf_capability_value_t \fP\fIvalue\fP,
+    \fBint *const           \fP\fIbound\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the bound for the process.
+.SH PARAMETERS
+.TP
+.B value
+The capability code to get the bound for.
+
+.TP
+.B bound
+The determined bound value.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_known_not\fP (with error bit) if the code is unknown to the current system.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_process_get.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_process_get.3
new file mode 100644 (file)
index 0000000..cebf989
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_capability_process_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_process_get
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_process_get\fP(
+    \fBf_capability_t *const \fP\fIcapability\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the capability for the current process.
+.SH PARAMETERS
+.TP
+.B capability
+The determined capability. This must be freed via f_capability_delete() when finished with.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_process_get_by_id.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_process_get_by_id.3
new file mode 100644 (file)
index 0000000..b554687
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_capability_process_get_by_id "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_process_get_by_id
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_process_get_by_id\fP(
+    \fBconst pid_t           \fP\fIid\fP,
+    \fBf_capability_t *const \fP\fIcapability\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the capability for the process represented by the given PID.
+.SH PARAMETERS
+.TP
+.B id
+The process ID (pid) to get capabilities of. If set to 0, then get the capabilities of the calling process (similar to f_capability_process_get()).
+
+.TP
+.B capability
+The determined capability. This must be freed via f_capability_delete() when finished with.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_process_set.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_process_set.3
new file mode 100644 (file)
index 0000000..4fcf216
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_capability_process_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_process_set
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_process_set\fP(
+    \fBconst f_capability_t \fP\fIcapability\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the capability for the current process.
+.SH PARAMETERS
+.TP
+.B capability
+The capability to assign.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_memory_not\fP (with error bit) if a out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if the file system does not permit this operation.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_security_bits_get.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_security_bits_get.3
new file mode 100644 (file)
index 0000000..4de90b8
--- /dev/null
@@ -0,0 +1,31 @@
+.TH f_capability_security_bits_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_security_bits_get
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_security_bits_get\fP(
+    \fBf_capability_bits_t *const \fP\fIbits\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the security bits for the current process.
+.SH PARAMETERS
+.TP
+.B bits
+The security bits.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_security_bits_set.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_security_bits_set.3
new file mode 100644 (file)
index 0000000..668714e
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_capability_security_bits_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_security_bits_set
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_security_bits_set\fP(
+    \fBconst f_capability_bits_t \fP\fIbits\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the security bits for the current process.
+.SH PARAMETERS
+.TP
+.B bits
+The security bits.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_memory_not\fP (with error bit) if a out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if the file system does not permit this operation.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_size.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_size.3
new file mode 100644 (file)
index 0000000..06c3a3f
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_capability_size "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_size
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_size\fP(
+    \fBconst f_capability_t \fP\fIcapability\fP,
+    \fBssize_t *const       \fP\fIsize\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the total length (in bytes) the capability would take up when converted to external representation.
+.SH PARAMETERS
+.TP
+.B capability
+The capability to get size of.
+
+.TP
+.B size
+The size of the external representation of capability. Size may be set to -1 on error.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_range_not\fP (with error bit) on out of range when processing size.
+.br
+\fBF_failure\fP (with error bit) on failure to get size.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_supported.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_supported.3
new file mode 100644 (file)
index 0000000..7af5b43
--- /dev/null
@@ -0,0 +1,22 @@
+.TH f_capability_supported "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_supported
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBbool f_capability_supported\fP(
+    \fBvoid     \fP\fI\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check if capabilities are supported.
+.SH RETURN VALUE
+.PP
+TRUE if supported. FALSE otherwise.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_supported_ambient.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_supported_ambient.3
new file mode 100644 (file)
index 0000000..4ac5bc4
--- /dev/null
@@ -0,0 +1,22 @@
+.TH f_capability_supported_ambient "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_supported_ambient
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBbool f_capability_supported_ambient\fP(
+    \fBvoid     \fP\fI\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check if capabilities support ambient, using special libcap function/macro.
+.SH RETURN VALUE
+.PP
+TRUE if ambient is supported. FALSE otherwise.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_supported_code.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_supported_code.3
new file mode 100644 (file)
index 0000000..ae8258f
--- /dev/null
@@ -0,0 +1,27 @@
+.TH f_capability_supported_code "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_supported_code
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBbool f_capability_supported_code\fP(
+    \fBf_capability_value_t \fP\fIcode\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check if the capabilitiy code is supported, using special libcap function/macro.
+.SH PARAMETERS
+.TP
+.B code
+The capability code.
+
+.SH RETURN VALUE
+.PP
+TRUE if the code is supported. FALSE otherwise.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_to_name.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_to_name.3
new file mode 100644 (file)
index 0000000..fd7fdce
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_capability_to_name "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_to_name
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_to_name\fP(
+    \fBconst f_capability_value_t \fP\fIcode\fP,
+    \fBf_string_dynamic_t *const  \fP\fIname\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert the capability code to a name (string).
+.SH PARAMETERS
+.TP
+.B code
+The capability code.
+
+.TP
+.B name
+The determined name. The name is appended into this variable. This is NULL terminated after the name.used.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_memory_not\fP (with error bit) if a out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if appended string length is too large to store in the buffer.
+.br
+\fBF_failure\fP (with error bit) on any other failure.
+.br
+Errors (with error bit) from: f_string_dynamic_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_to_text.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_to_text.3
new file mode 100644 (file)
index 0000000..79ac948
--- /dev/null
@@ -0,0 +1,46 @@
+.TH f_capability_to_text "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_to_text
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_to_text\fP(
+    \fBconst f_capability_t      \fP\fIcapability\fP,
+    \fBf_string_dynamic_t *const \fP\fItext\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert the capability to a human-readable string.
+.PP
+This will append the string to text.
+.SH PARAMETERS
+.TP
+.B capability
+The capability code.
+
+.TP
+.B text
+The determined human-readable string. This is NULL terminated after the text.used.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_memory_not\fP (with error bit) if a out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if appended string length is too large to store in the buffer.
+.br
+\fBF_failure\fP (with error bit) on any other failure.
+.br
+Errors (with error bit) from: f_string_dynamic_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_capability/data/documentation/man/man3/f_capability_user_set.3 b/level_0/f_capability/data/documentation/man/man3/f_capability_user_set.3
new file mode 100644 (file)
index 0000000..73f8f98
--- /dev/null
@@ -0,0 +1,39 @@
+.TH f_capability_user_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_capability_user_set
+.SH SYNOPSIS
+.nf
+.B #include <capability.h>
+.sp
+\fBf_status_t f_capability_user_set\fP(
+    \fBconst uid_t \fP\fIid_user\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the user ID.
+.PP
+This is the same as setuid(), except: 1) Helps ensure the correct effective capability is used to perform the operation. 2) Preserves availability of permitted capabilities after the user ID changes. 3) All "effective" capabilities are lowered after this call.
+.SH PARAMETERS
+.TP
+.B id_user
+The ID of the user.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_implemented_not\fP (with error bit) if this function is not available (due to not having libcap support compiled in).
+.br
+\fBF_memory_not\fP (with error bit) if a out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if the file system does not permit this operation.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index 64f2fe0d358d5aab156848d3523e4508226e4e03..450c6258d9325471dc4fa184127005085bca5408 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library color.c private-color.c color/common.c
 
 build_sources_headers color.h color/common.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_0/f_color/data/documentation/man/man3/f_color_context_delete.3 b/level_0/f_color/data/documentation/man/man3/f_color_context_delete.3
new file mode 100644 (file)
index 0000000..532d865
--- /dev/null
@@ -0,0 +1,31 @@
+.TH f_color_context_delete "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_color_context_delete
+.SH SYNOPSIS
+.nf
+.B #include <common.h>
+.sp
+\fBf_status_t f_color_context_delete\fP(
+    \fBf_color_context_t *const \fP\fIcontext\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Delete any dynamic allocated data on the color context object.
+.SH PARAMETERS
+.TP
+.B context
+The context object.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_color/data/documentation/man/man3/f_color_context_destroy.3 b/level_0/f_color/data/documentation/man/man3/f_color_context_destroy.3
new file mode 100644 (file)
index 0000000..7386367
--- /dev/null
@@ -0,0 +1,31 @@
+.TH f_color_context_destroy "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_color_context_destroy
+.SH SYNOPSIS
+.nf
+.B #include <common.h>
+.sp
+\fBf_status_t f_color_context_destroy\fP(
+    \fBf_color_context_t *const \fP\fIcontext\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Destroy any dynamic allocated data on the color context object.
+.SH PARAMETERS
+.TP
+.B context
+The context object.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_color/data/documentation/man/man3/f_color_load_context.3 b/level_0/f_color/data/documentation/man/man3/f_color_load_context.3
new file mode 100644 (file)
index 0000000..c44dc04
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_color_load_context "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_color_load_context
+.SH SYNOPSIS
+.nf
+.B #include <color.h>
+.sp
+\fBf_status_t f_color_load_context\fP(
+    \fBconst bool               \fP\fIuse_light_colors\fP,
+    \fBf_color_context_t *const \fP\fIcontext\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provide basic color output support (linux & xterm). This is the Featureless LINUX Library, so there is no support for non-linux colors at this time.
+.PP
+For simplicity purposes, all color code strings are required and assumed to be NULL terminated. Load the appropriate colors into the color context.
+.PP
+This will handle the difference betweem xorg terminals and linux consoles. If you wish to use non-standard colors either redefine this function or don't use it.
+.PP
+The default/fallback behavior is f_color_xterminal.
+.SH PARAMETERS
+.TP
+.B use_light_colors
+Set to F_true to use colors for light backgrounds. Set to F_false to use colors for dark backgrounds.
+
+.TP
+.B context
+The color context the load the color codes into.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by()
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_color/data/documentation/man/man3/f_color_save_1.3 b/level_0/f_color/data/documentation/man/man3/f_color_save_1.3
new file mode 100644 (file)
index 0000000..5727dd6
--- /dev/null
@@ -0,0 +1,43 @@
+.TH f_color_save_1 "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_color_save_1
+.SH SYNOPSIS
+.nf
+.B #include <color.h>
+.sp
+\fBf_status_t f_color_save_1\fP(
+    \fBconst f_color_format_t    \fP\fIformat\fP,
+    \fBconst f_string_static_t   \fP\fIcolor1\fP,
+    \fBf_string_dynamic_t *const \fP\fIbuffer\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Save color information to some string using one color code.
+.PP
+This is environment sensitive. If TERM is not defined or set to "linux", then macro_f_color_t_set_linux() is used. Otherwise macro_f_color_t_set_xterminal() is used.
+.SH PARAMETERS
+.TP
+.B format
+The color format parts.
+
+.TP
+.B color1
+A color to assign.
+
+.TP
+.B buffer
+The string to save the colors to. The buffer will become NULL terminated after the appended string length.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by()
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_color/data/documentation/man/man3/f_color_save_2.3 b/level_0/f_color/data/documentation/man/man3/f_color_save_2.3
new file mode 100644 (file)
index 0000000..c8273ca
--- /dev/null
@@ -0,0 +1,48 @@
+.TH f_color_save_2 "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_color_save_2
+.SH SYNOPSIS
+.nf
+.B #include <color.h>
+.sp
+\fBf_status_t f_color_save_2\fP(
+    \fBconst f_color_format_t    \fP\fIformat\fP,
+    \fBconst f_string_static_t   \fP\fIcolor1\fP,
+    \fBconst f_string_static_t   \fP\fIcolor2\fP,
+    \fBf_string_dynamic_t *const \fP\fIbuffer\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Save color information to some string using two color codes.
+.PP
+This is environment sensitive. If TERM is not defined or set to "linux", then macro_f_color_t_set_linux() is used. Otherwise macro_f_color_t_set_xterminal() is used.
+.SH PARAMETERS
+.TP
+.B format
+The color format parts.
+
+.TP
+.B color1
+A color to assign.
+
+.TP
+.B color2
+A second color to assign. Ignored if color1.used is 0.
+
+.TP
+.B buffer
+The string to save the colors to. The buffer will become NULL terminated after the appended string length.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by()
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_color/data/documentation/man/man3/f_color_save_3.3 b/level_0/f_color/data/documentation/man/man3/f_color_save_3.3
new file mode 100644 (file)
index 0000000..89caf97
--- /dev/null
@@ -0,0 +1,53 @@
+.TH f_color_save_3 "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_color_save_3
+.SH SYNOPSIS
+.nf
+.B #include <color.h>
+.sp
+\fBf_status_t f_color_save_3\fP(
+    \fBconst f_color_format_t    \fP\fIformat\fP,
+    \fBconst f_string_static_t   \fP\fIcolor1\fP,
+    \fBconst f_string_static_t   \fP\fIcolor2\fP,
+    \fBconst f_string_static_t   \fP\fIcolor3\fP,
+    \fBf_string_dynamic_t *const \fP\fIbuffer\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Save color information to some string using three color codes.
+.PP
+This is environment sensitive. If TERM is not defined or set to "linux", then macro_f_color_t_set_linux() is used. Otherwise macro_f_color_t_set_xterminal() is used.
+.SH PARAMETERS
+.TP
+.B format
+The color format parts.
+
+.TP
+.B color1
+A color to assign.
+
+.TP
+.B color2
+A second color to assign. Ignored if color1.used is 0.
+
+.TP
+.B color3
+A third color to assign. Ignored if color1.used or color2.used is 0.
+
+.TP
+.B buffer
+The string to save the colors to. The buffer will become NULL terminated after the appended string length.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by()
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_color/data/documentation/man/man3/f_color_save_4.3 b/level_0/f_color/data/documentation/man/man3/f_color_save_4.3
new file mode 100644 (file)
index 0000000..1f11269
--- /dev/null
@@ -0,0 +1,58 @@
+.TH f_color_save_4 "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_color_save_4
+.SH SYNOPSIS
+.nf
+.B #include <color.h>
+.sp
+\fBf_status_t f_color_save_4\fP(
+    \fBconst f_color_format_t    \fP\fIformat\fP,
+    \fBconst f_string_static_t   \fP\fIcolor1\fP,
+    \fBconst f_string_static_t   \fP\fIcolor2\fP,
+    \fBconst f_string_static_t   \fP\fIcolor3\fP,
+    \fBconst f_string_static_t   \fP\fIcolor4\fP,
+    \fBf_string_dynamic_t *const \fP\fIbuffer\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Save color information to some string using four color codes.
+.PP
+This is environment sensitive. If TERM is not defined or set to "linux", then macro_f_color_t_set_linux() is used. Otherwise macro_f_color_t_set_xterminal() is used.
+.SH PARAMETERS
+.TP
+.B format
+The color format parts.
+
+.TP
+.B color1
+A color to assign.
+
+.TP
+.B color2
+A second color to assign. Ignored if color1.used is 0.
+
+.TP
+.B color3
+A third color to assign. Ignored if color1.used or color2.used is 0.
+
+.TP
+.B color4
+A fourth color to assign. Ignored if color1.used, color2.used, or color3.used is 0.
+
+.TP
+.B buffer
+The string to save the colors to. The buffer will become NULL terminated after the appended string length.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by()
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_color/data/documentation/man/man3/f_color_save_5.3 b/level_0/f_color/data/documentation/man/man3/f_color_save_5.3
new file mode 100644 (file)
index 0000000..9493a1b
--- /dev/null
@@ -0,0 +1,65 @@
+.TH f_color_save_5 "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_color_save_5
+.SH SYNOPSIS
+.nf
+.B #include <color.h>
+.sp
+\fBf_status_t f_color_save_5\fP(
+    \fBconst f_color_format_t    \fP\fIformat\fP,
+    \fBconst f_string_static_t   \fP\fIcolor1\fP,
+    \fBconst f_string_static_t   \fP\fIcolor2\fP,
+    \fBconst f_string_static_t   \fP\fIcolor3\fP,
+    \fBconst f_string_static_t   \fP\fIcolor4\fP,
+    \fBconst f_string_static_t   \fP\fIcolor5\fP,
+    \fBf_string_dynamic_t *const \fP\fIbuffer\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Save color information to some string using five color codes.
+.PP
+Five colors is the max that may be associated with a single color format block.
+.PP
+This is environment sensitive. If TERM is not defined or set to "linux", then macro_f_color_t_set_linux() is used. Otherwise macro_f_color_t_set_xterminal() is used.
+.SH PARAMETERS
+.TP
+.B format
+The color format parts.
+
+.TP
+.B color1
+A color to assign.
+
+.TP
+.B color2
+A second color to assign. Ignored if color1.used is 0.
+
+.TP
+.B color3
+A third color to assign. Ignored if color1.used or color2.used is 0.
+
+.TP
+.B color4
+A fourth color to assign. Ignored if color1.used, color2.used, or color3.used is 0.
+
+.TP
+.B color5
+A fifth color to assign. Ignored if color1.used, color2.used, color3.used, or color4.used is 0.
+
+.TP
+.B buffer
+The string to save the colors to. The buffer will become NULL terminated after the appended string length.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by()
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index 8ae4ea453a691684dd9c94a6e3442f97f2ac8641..823c60154f5cd38c4554b5eb4b2003953aac9b83 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library console.c console/common.c private-console.c
 
 build_sources_headers console.h console/common.h private-console.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_0/f_console/data/documentation/man/man3/f_console_environment_process.3 b/level_0/f_console/data/documentation/man/man3/f_console_environment_process.3
new file mode 100644 (file)
index 0000000..36ad102
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_console_environment_process "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_console_environment_process
+.SH SYNOPSIS
+.nf
+.B #include <console.h>
+.sp
+\fBf_status_t f_console_environment_process\fP(
+    \fBconst f_console_arguments_t \fP\fIarguments\fP,
+    \fBf_string_maps_t *const      \fP\fIenvironment\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Some console input/output commands. Transcribe the NULL terminated environment strings into maps.
+.PP
+All values are appended to the environment maps.
+.PP
+Errors (with error bit) from: f_string_maps_increase_by().
+.SH PARAMETERS
+.TP
+.B arguments
+
+.TP
+.B environment
+Maps representing the environment variable names and values. Both the name and the value strings may not be NULL terminated. Both the name and the value strings may be pointers to the envp memory addresses.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if the arguments.envp pointer is NULL or there are no environment variables in arguments.envp.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_console/data/documentation/man/man3/f_console_identify.3 b/level_0/f_console/data/documentation/man/man3/f_console_identify.3
new file mode 100644 (file)
index 0000000..6706494
--- /dev/null
@@ -0,0 +1,34 @@
+.TH f_console_identify "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_console_identify
+.SH SYNOPSIS
+.nf
+.B #include <console.h>
+.sp
+\fBf_status_t f_console_identify\fP(
+    \fBconst f_string_t      \fP\fIinput\fP,
+    \fBf_console_id_t *const \fP\fIresult\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Determine the type code represented by the given input parameter.
+.SH PARAMETERS
+.TP
+.B input
+The input parameter to process.
+
+.TP
+.B result
+The resulting console type code determined by this function.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP the input string is empty.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_console/data/documentation/man/man3/f_console_parameter_prioritize_left.3 b/level_0/f_console/data/documentation/man/man3/f_console_parameter_prioritize_left.3
new file mode 100644 (file)
index 0000000..30a95c2
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_console_parameter_prioritize_left "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_console_parameter_prioritize_left
+.SH SYNOPSIS
+.nf
+.B #include <console.h>
+.sp
+\fBf_status_t f_console_parameter_prioritize_left\fP(
+    \fBconst f_console_parameters_t    \fP\fIparameters\fP,
+    \fBconst f_console_parameter_ids_t \fP\fIchoices\fP,
+    \fBf_console_parameter_id_t *const \fP\fIdecision\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Given a set of parameter choices, determine which one has the highest priority.
+.PP
+The priority is determined by viewing the parameters from left to right. The left-most parameter defined in the set has the priority over others.
+.PP
+For example, the color context modes override each other, so only one gets priority. If given, say "+l ++no_color +d", the "+d" would be the left-most parameter "+l" and "++no_color". The decision would be "+d".
+.PP
+This also applies to short parameters combined into one, such as "+lnd", the "d" would again be the decision.
+.SH PARAMETERS
+.TP
+.B parameters
+The parameters to process.
+
+.TP
+.B choices
+An array of numeric ids, each representing a parameter within the parameters variable. The order does not matter.
+
+.TP
+.B decision
+The resulting decision. If none of the parameters are found, then this will not be updated (therefore it is safe to have it pre-initialized to the default).
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if no parameters were found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_console/data/documentation/man/man3/f_console_parameter_prioritize_right.3 b/level_0/f_console/data/documentation/man/man3/f_console_parameter_prioritize_right.3
new file mode 100644 (file)
index 0000000..2a85736
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_console_parameter_prioritize_right "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_console_parameter_prioritize_right
+.SH SYNOPSIS
+.nf
+.B #include <console.h>
+.sp
+\fBf_status_t f_console_parameter_prioritize_right\fP(
+    \fBconst f_console_parameters_t    \fP\fIparameters\fP,
+    \fBconst f_console_parameter_ids_t \fP\fIchoices\fP,
+    \fBf_console_parameter_id_t *const \fP\fIdecision\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Given a set of parameter choices, determine which one has the highest priority.
+.PP
+The priority is determined by viewing the parameters from left to right. The right-most parameter defined in the set has the priority over others.
+.PP
+For example, the color context modes override each other, so only one gets priority. If given, say "+l ++no_color +d", the "+d" would be the right-most parameter "+l" and "++no_color". The decision would be "+d".
+.PP
+This also applies to short parameters combined into one, such as "+lnd", the "d" would again be the decision.
+.SH PARAMETERS
+.TP
+.B parameters
+The parameters to process.
+
+.TP
+.B choices
+An array of numeric ids, each representing a parameter within the parameters variable. The order does not matter.
+
+.TP
+.B decision
+The resulting decision. If none of the parameters are found, then this will not be updated (therefore it is safe to have it pre-initialized to the default).
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if no parameters were found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_console/data/documentation/man/man3/f_console_parameter_process.3 b/level_0/f_console/data/documentation/man/man3/f_console_parameter_process.3
new file mode 100644 (file)
index 0000000..4565c76
--- /dev/null
@@ -0,0 +1,56 @@
+.TH f_console_parameter_process "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_console_parameter_process
+.SH SYNOPSIS
+.nf
+.B #include <console.h>
+.sp
+\fBf_status_t f_console_parameter_process\fP(
+    \fBconst f_console_arguments_t   \fP\fIarguments\fP,
+    \fBf_console_parameters_t *const \fP\fIparameters\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Process console parameters.
+.PP
+Additional parameters must immediately follow the parameter or grouped parameters, such as "tar -xfc file.tar.gz" or "tar -x -f file.tar.gz -c".
+.PP
+Additional parameters must immediately follow the parameter, such as "tar --extract --file file.tar.gz --create".
+.PP
+Additional parameters must immediately follow the parameter, such as "tar extract file file.tar.gz create".
+.SH PARAMETERS
+.TP
+.B arguments
+The parameters passed to the process.
+
+.TP
+.B parameters
+The console parameters to look for.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if argc is 0, argv is a NULL pointer, or if argv[0] is NULL.
+.br
+\fBF_complete_not\fP if "values" parameters were expected but not found.
+.br
+\fBF_array_too_large\fP (with error bit) if a buffer would exceed max length.
+.br
+\fBF_failure\fP (with error bit) if width is not long enough to convert when processing arguments as UTF-8.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_array_lengths_increase().
+.br
+Errors (with error bit) from: f_array_lengths_increase_by().
+.br
+Errors (with error bit) from: f_string_dynamics_increase_by().
+.br
+Errors (with error bit) from: f_utf_char_to_character().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_console/data/documentation/man/man3/f_console_parameters_delete.3 b/level_0/f_console/data/documentation/man/man3/f_console_parameters_delete.3
new file mode 100644 (file)
index 0000000..cf29c24
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_console_parameters_delete "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_console_parameters_delete
+.SH SYNOPSIS
+.nf
+.B #include <common.h>
+.sp
+\fBf_status_t f_console_parameters_delete\fP(
+    \fBf_console_parameters_t *const \fP\fIparameters\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Delete any dynamic allocated data on the parameters object.
+.SH PARAMETERS
+.TP
+.B parameters
+The parameters object.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.PP
+Errors (with error bit) from: f_string_dynamics_resize().
+.br
+Errors (with error bit) from: f_array_lengths_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_console/data/documentation/man/man3/f_console_parameters_destroy.3 b/level_0/f_console/data/documentation/man/man3/f_console_parameters_destroy.3
new file mode 100644 (file)
index 0000000..faddb3f
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_console_parameters_destroy "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_console_parameters_destroy
+.SH SYNOPSIS
+.nf
+.B #include <common.h>
+.sp
+\fBf_status_t f_console_parameters_destroy\fP(
+    \fBf_console_parameters_t *const \fP\fIparameters\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Destroy any dynamic allocated data on the parameters object.
+.SH PARAMETERS
+.TP
+.B parameters
+The parameters object.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamics_adjust().
+.br
+Errors (with error bit) from: f_array_lengths_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index d2129f8b5d62c5ba10fa72e92cdb618e740b1816..8f791def59e9f84ae3f20d0343764c7caaf69e77 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library control_group.c control_group/common.c
 
 build_sources_headers control_group.h control_group/common.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_0/f_control_group/data/documentation/man/man3/f_control_group_copy.3 b/level_0/f_control_group/data/documentation/man/man3/f_control_group_copy.3
new file mode 100644 (file)
index 0000000..0b1b5b9
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_control_group_copy "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_control_group_copy
+.SH SYNOPSIS
+.nf
+.B #include <control_group.h>
+.sp
+\fBf_status_t f_control_group_copy\fP(
+    \fBconst f_control_group_t  \fP\fIsource\fP,
+    \fBf_control_group_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provides control group (cgroup) related functionality.
+.PP
+It appears that the control group, as documented in the Linux kernel, is changed via the sysfs instead of system calls. If there are system calls to set the control group for a given process then this will need to be updated to utilize that. Until then, this is an implementation that helps facilitate writing to the sysfs file system for adding a process to a particular control group.
+.PP
+This is intended to be used with Control Groups (cgroups) Version 2. Copy the source control group onto the destination control group.
+.SH PARAMETERS
+.TP
+.B source
+The source to append.
+
+.TP
+.B destination
+The destination the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_append(). Errors (with error bit) from: f_string_dynamics_append_all().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index 4e41d4da2902f065f693d916fd78a7799c4f1615..acc490e858b02c4e3690dc5dff735b11ad25b02f 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library conversion.c private-conversion.c conversion/common.c
 
 build_sources_headers conversion.h conversion/common.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_0/f_conversion/data/documentation/man/man3/f_conversion_character_is_binary.3 b/level_0/f_conversion/data/documentation/man/man3/f_conversion_character_is_binary.3
new file mode 100644 (file)
index 0000000..b065aca
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_conversion_character_is_binary "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_conversion_character_is_binary
+.SH SYNOPSIS
+.nf
+.B #include <conversion.h>
+.sp
+\fBf_status_t f_conversion_character_is_binary\fP(
+    \fBconst f_char_t \fP\fIcharacter\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provide means to convert one data type to another, such as a string to an integer. Identify whether or not the given 1-byte character represents a boolean digit.
+.PP
+A boolean digit is either '0' or '1'.
+.PP
+This only checks against ASCII characters.
+.SH PARAMETERS
+.TP
+.B character
+The character to validate.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if character is a binary.
+.br
+\fBF_false\fP if character is not a binary.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_conversion/data/documentation/man/man3/f_conversion_character_is_decimal.3 b/level_0/f_conversion/data/documentation/man/man3/f_conversion_character_is_decimal.3
new file mode 100644 (file)
index 0000000..c62ce4d
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_conversion_character_is_decimal "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_conversion_character_is_decimal
+.SH SYNOPSIS
+.nf
+.B #include <conversion.h>
+.sp
+\fBf_status_t f_conversion_character_is_decimal\fP(
+    \fBconst f_char_t \fP\fIcharacter\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify whether or not the given 1-byte character represents a decimal digit.
+.PP
+A decimal digit is a character from the numbers '0' to '9'.
+.PP
+This only checks against ASCII characters.
+.SH PARAMETERS
+.TP
+.B character
+The character to validate.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if character is a decimal.
+.br
+\fBF_false\fP if character is not a decimal.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_conversion/data/documentation/man/man3/f_conversion_character_is_duodecimal.3 b/level_0/f_conversion/data/documentation/man/man3/f_conversion_character_is_duodecimal.3
new file mode 100644 (file)
index 0000000..7769301
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_conversion_character_is_duodecimal "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_conversion_character_is_duodecimal
+.SH SYNOPSIS
+.nf
+.B #include <conversion.h>
+.sp
+\fBf_status_t f_conversion_character_is_duodecimal\fP(
+    \fBconst f_char_t \fP\fIcharacter\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify whether or not the given 1-byte character represents a duodecimal digit.
+.PP
+'b' or 'B': Character used to represent the number 11.
+.PP
+This only checks against ASCII characters.
+.SH PARAMETERS
+.TP
+.B character
+The character to validate.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if character is a duodecimal.
+.br
+\fBF_false\fP if character is not a duodecimal.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_conversion/data/documentation/man/man3/f_conversion_character_is_hexidecimal.3 b/level_0/f_conversion/data/documentation/man/man3/f_conversion_character_is_hexidecimal.3
new file mode 100644 (file)
index 0000000..96c25f0
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_conversion_character_is_hexidecimal "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_conversion_character_is_hexidecimal
+.SH SYNOPSIS
+.nf
+.B #include <conversion.h>
+.sp
+\fBf_status_t f_conversion_character_is_hexidecimal\fP(
+    \fBconst f_char_t \fP\fIcharacter\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify whether or not the given 1-byte character represents a hexidecimal digit.
+.PP
+'f' or 'F': Character used to represent the number 15.
+.PP
+This only checks against ASCII characters.
+.SH PARAMETERS
+.TP
+.B character
+The character to validate.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if character is a hexidecimal.
+.br
+\fBF_false\fP if character is not a hexidecimal.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_conversion/data/documentation/man/man3/f_conversion_character_is_octal.3 b/level_0/f_conversion/data/documentation/man/man3/f_conversion_character_is_octal.3
new file mode 100644 (file)
index 0000000..7fb45d5
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_conversion_character_is_octal "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_conversion_character_is_octal
+.SH SYNOPSIS
+.nf
+.B #include <conversion.h>
+.sp
+\fBf_status_t f_conversion_character_is_octal\fP(
+    \fBconst f_char_t \fP\fIcharacter\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify whether or not the given 1-byte character represents a octal digit.
+.PP
+A decimal digit is a character from the numbers '0' to '7'.
+.PP
+This only checks against ASCII characters.
+.SH PARAMETERS
+.TP
+.B character
+The character to validate.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if character is an octal.
+.br
+\fBF_false\fP if character is not an octal.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_conversion/data/documentation/man/man3/f_conversion_character_to_binary.3 b/level_0/f_conversion/data/documentation/man/man3/f_conversion_character_to_binary.3
new file mode 100644 (file)
index 0000000..954daa7
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_conversion_character_to_binary "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_conversion_character_to_binary
+.SH SYNOPSIS
+.nf
+.B #include <conversion.h>
+.sp
+\fBf_status_t f_conversion_character_to_binary\fP(
+    \fBconst f_char_t \fP\fIcharacter\fP,
+    \fBuint8_t *const \fP\fInumber\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert a single character into the binary digit that it represents.
+.SH PARAMETERS
+.TP
+.B character
+The character to convert.
+
+.TP
+.B number
+This will store the value of the converted character. This value is only changed on success.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP if character was converted to a binary.
+.br
+\fBF_number\fP (with error bit) if no conversion was made due to non-binary values being found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_conversion/data/documentation/man/man3/f_conversion_character_to_decimal.3 b/level_0/f_conversion/data/documentation/man/man3/f_conversion_character_to_decimal.3
new file mode 100644 (file)
index 0000000..7a98eb1
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_conversion_character_to_decimal "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_conversion_character_to_decimal
+.SH SYNOPSIS
+.nf
+.B #include <conversion.h>
+.sp
+\fBf_status_t f_conversion_character_to_decimal\fP(
+    \fBconst f_char_t \fP\fIcharacter\fP,
+    \fBuint8_t *const \fP\fInumber\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert a single character into the decimal digit that it represents.
+.PP
+.SH PARAMETERS
+.TP
+.B character
+The character to convert.
+
+.TP
+.B number
+This will store the value of the converted character. This value is only changed on success.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP if character was converted to a decimal.
+.br
+\fBF_number\fP (with error bit) if no conversion was made due to non-decimal values being found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_conversion/data/documentation/man/man3/f_conversion_character_to_duodecimal.3 b/level_0/f_conversion/data/documentation/man/man3/f_conversion_character_to_duodecimal.3
new file mode 100644 (file)
index 0000000..b81d923
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_conversion_character_to_duodecimal "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_conversion_character_to_duodecimal
+.SH SYNOPSIS
+.nf
+.B #include <conversion.h>
+.sp
+\fBf_status_t f_conversion_character_to_duodecimal\fP(
+    \fBconst f_char_t \fP\fIcharacter\fP,
+    \fBuint8_t *const \fP\fInumber\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert a single character into the duodecimal digit that it represents.
+.PP
+.SH PARAMETERS
+.TP
+.B character
+The character to convert.
+
+.TP
+.B number
+This will store the value of the converted character. This value is only changed on success.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP if character was converted to a duodecimal.
+.br
+\fBF_number\fP (with error bit) if no conversion was made due to non-duodecimal values being found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_conversion/data/documentation/man/man3/f_conversion_character_to_hexidecimal.3 b/level_0/f_conversion/data/documentation/man/man3/f_conversion_character_to_hexidecimal.3
new file mode 100644 (file)
index 0000000..c6ad055
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_conversion_character_to_hexidecimal "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_conversion_character_to_hexidecimal
+.SH SYNOPSIS
+.nf
+.B #include <conversion.h>
+.sp
+\fBf_status_t f_conversion_character_to_hexidecimal\fP(
+    \fBconst f_char_t \fP\fIcharacter\fP,
+    \fBuint8_t *const \fP\fInumber\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert a single character into the hexidecimal digit that it represents.
+.PP
+.SH PARAMETERS
+.TP
+.B character
+The character to convert.
+
+.TP
+.B number
+This will store the value of the converted character. This value is only changed on success.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP if character was converted to a hexidecimal.
+.br
+\fBF_number\fP (with error bit) if no conversion was made due to non-hexidecimal values being found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_conversion/data/documentation/man/man3/f_conversion_character_to_octal.3 b/level_0/f_conversion/data/documentation/man/man3/f_conversion_character_to_octal.3
new file mode 100644 (file)
index 0000000..aa2e106
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_conversion_character_to_octal "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_conversion_character_to_octal
+.SH SYNOPSIS
+.nf
+.B #include <conversion.h>
+.sp
+\fBf_status_t f_conversion_character_to_octal\fP(
+    \fBconst f_char_t \fP\fIcharacter\fP,
+    \fBuint8_t *const \fP\fInumber\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert a single character into the octal digit that it represents.
+.PP
+.SH PARAMETERS
+.TP
+.B character
+The character to convert.
+
+.TP
+.B number
+This will store the value of the converted character. This value is only changed on success.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP if character was converted to a hexidecimal.
+.br
+\fBF_number\fP (with error bit) if no conversion was made due to non-hexidecimal values being found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_conversion/data/documentation/man/man3/f_conversion_number_signed_print.3 b/level_0/f_conversion/data/documentation/man/man3/f_conversion_number_signed_print.3
new file mode 100644 (file)
index 0000000..01fd217
--- /dev/null
@@ -0,0 +1,57 @@
+.TH f_conversion_number_signed_print "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_conversion_number_signed_print
+.SH SYNOPSIS
+.nf
+.B #include <conversion.h>
+.sp
+\fBf_status_t f_conversion_number_signed_print\fP(
+    \fBconst f_number_signed_t   \fP\fInumber\fP,
+    \fBconst f_conversion_data_t \fP\fIdata\fP,
+    \fBFILE *const               \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert a signed number into the decimal digit string that it represents.
+.PP
+The generated number is printed to the file stream.
+.PP
+This only supports the following base units: 2 through 16. This only supports base prefixes for: 2, 8, 10, 12, and 16.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B number
+The number to convert.
+
+.TP
+.B data
+The settings designating how to perform the conversion.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP if the number was converted to a string.
+.br
+\fBF_block\fP (with error bit) if file stream is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_output\fP (with error bit) on any other file output error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_conversion/data/documentation/man/man3/f_conversion_number_signed_to_string.3 b/level_0/f_conversion/data/documentation/man/man3/f_conversion_number_signed_to_string.3
new file mode 100644 (file)
index 0000000..caecd37
--- /dev/null
@@ -0,0 +1,45 @@
+.TH f_conversion_number_signed_to_string "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_conversion_number_signed_to_string
+.SH SYNOPSIS
+.nf
+.B #include <conversion.h>
+.sp
+\fBf_status_t f_conversion_number_signed_to_string\fP(
+    \fBconst f_number_signed_t   \fP\fInumber\fP,
+    \fBconst f_conversion_data_t \fP\fIdata\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert a signed number into the decimal digit string that it represents.
+.PP
+The generated number is appended to the destination string.
+.PP
+This only supports the following base units: 2 through 16. This only supports base prefixes for: 2, 8, 10, 12, and 16.
+.SH PARAMETERS
+.TP
+.B number
+The number to convert.
+
+.TP
+.B data
+The settings designating how to perform the conversion.
+
+.TP
+.B destination
+The destination the converted string is saved into.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP if the number was converted to a string.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by()
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_conversion/data/documentation/man/man3/f_conversion_number_unsigned_print.3 b/level_0/f_conversion/data/documentation/man/man3/f_conversion_number_unsigned_print.3
new file mode 100644 (file)
index 0000000..0d1203b
--- /dev/null
@@ -0,0 +1,58 @@
+.TH f_conversion_number_unsigned_print "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_conversion_number_unsigned_print
+.SH SYNOPSIS
+.nf
+.B #include <conversion.h>
+.sp
+\fBf_status_t f_conversion_number_unsigned_print\fP(
+    \fBconst f_number_unsigned_t \fP\fInumber\fP,
+    \fBconst f_conversion_data_t \fP\fIdata\fP,
+    \fBFILE *const               \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert an unsigned number into the decimal digit string that it represents.
+.PP
+The generated number is printed to the file stream.
+.PP
+This only supports the following base units: 2 through 16. This only supports base prefixes for: 2, 8, 10, 12, and 16.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.PP
+.SH PARAMETERS
+.TP
+.B number
+The number to convert. This number is unsigned to allow for unsigned integers to be used. To represent a negative number, assign the flag f_conversion_data_flag_is_negative to data.flags.
+
+.TP
+.B data
+The settings designating how to perform the conversion.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP if the number was converted to a string.
+.br
+\fBF_block\fP (with error bit) if file stream is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_output\fP (with error bit) on any other file output error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_conversion/data/documentation/man/man3/f_conversion_number_unsigned_to_string.3 b/level_0/f_conversion/data/documentation/man/man3/f_conversion_number_unsigned_to_string.3
new file mode 100644 (file)
index 0000000..a324b41
--- /dev/null
@@ -0,0 +1,45 @@
+.TH f_conversion_number_unsigned_to_string "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_conversion_number_unsigned_to_string
+.SH SYNOPSIS
+.nf
+.B #include <conversion.h>
+.sp
+\fBf_status_t f_conversion_number_unsigned_to_string\fP(
+    \fBconst f_number_unsigned_t \fP\fInumber\fP,
+    \fBconst f_conversion_data_t \fP\fIdata\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert an unsigned number into the decimal digit string that it represents.
+.PP
+The generated number is appended to the destination string.
+.PP
+This only supports the following base units: 2 through 16. This only supports base prefixes for: 2, 8, 10, 12, and 16.
+.SH PARAMETERS
+.TP
+.B number
+The number to convert.
+
+.TP
+.B data
+The settings designating how to perform the conversion.
+
+.TP
+.B destination
+The destination the converted string is saved into.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP if the number was converted to a string..br
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by()
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index ac2211b28236c077ba89541cc546df9682878022..000b2693b10a6d3b7a0268f8291e9fcb03cea478 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library directory.c directory/common.c private-directory.c
 
 build_sources_headers directory.h directory/common.h directory/type.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_0/f_directory/data/documentation/man/man3/f_directory_create.3 b/level_0/f_directory/data/documentation/man/man3/f_directory_create.3
new file mode 100644 (file)
index 0000000..011c26b
--- /dev/null
@@ -0,0 +1,62 @@
+.TH f_directory_create "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_directory_create
+.SH SYNOPSIS
+.nf
+.B #include <directory.h>
+.sp
+\fBf_status_t f_directory_create\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst mode_t            \fP\fImode\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create a directory at the given path.
+.SH PARAMETERS
+.TP
+.B path
+The file path to the directory.
+
+.TP
+.B mode
+The directory mode to use when creating.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_directory_link_max\fP (with error bit) max links limit reached or exceeded.
+.br
+\fBF_file_found\fP (with error bit) of a directory aleady exists at the path.
+.br
+\fBF_file_found_not\fP (with error bit) if a file within the path is not found (such as a broken symbolic link).
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for removing.
+.br
+\fBF_read_only\fP (with error bit) if file is read-only.
+.br
+\fBF_space_not\fP (with error bit) if file system is out of space (or file system quota is reached).
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_directory/data/documentation/man/man3/f_directory_create_at.3 b/level_0/f_directory/data/documentation/man/man3/f_directory_create_at.3
new file mode 100644 (file)
index 0000000..402be8e
--- /dev/null
@@ -0,0 +1,69 @@
+.TH f_directory_create_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_directory_create_at
+.SH SYNOPSIS
+.nf
+.B #include <directory.h>
+.sp
+\fBf_status_t f_directory_create_at\fP(
+    \fBconst int               \fP\fIat_id\fP,
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst mode_t            \fP\fImode\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create a directory at the given path within the directories specified by the file descriptor.
+.SH PARAMETERS
+.TP
+.B at_id
+The parent directory, as an open directory file descriptor, in which path is relative to.
+
+.TP
+.B path
+The file path to the directory.
+
+.TP
+.B mode
+The directory mode to use when creating.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_directory_descriptor\fP (with error bit) for bad directory descriptor for at_id.
+.br
+\fBF_directory_link_max\fP (with error bit) max links limit reached or exceeded.
+.br
+\fBF_file_found\fP (with error bit) of a directory aleady exists at the path.
+.br
+\fBF_file_found_not\fP (with error bit) if a file within the path is not found (such as a broken symbolic link).
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for removing.
+.br
+\fBF_read_only\fP (with error bit) if file is read-only.
+.br
+\fBF_space_not\fP (with error bit) if file system is out of space (or file system quota is reached).
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_directory/data/documentation/man/man3/f_directory_exists.3 b/level_0/f_directory/data/documentation/man/man3/f_directory_exists.3
new file mode 100644 (file)
index 0000000..fe37034
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_directory_exists "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_directory_exists
+.SH SYNOPSIS
+.nf
+.B #include <directory.h>
+.sp
+\fBf_status_t f_directory_exists\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify whether or not a file exists at the given path and if that file is a directory or a symlink to a directory.
+.SH PARAMETERS
+.TP
+.B path
+The file path to the directory.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if path was found and path is a directory (or a symlink to a directory).
+\fBF_false\fP if path was found and path is not a directory.
+\fBF_file_found_not\fP if the path was not found.
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) if access to the file was denied.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_directory/data/documentation/man/man3/f_directory_exists_at.3 b/level_0/f_directory/data/documentation/man/man3/f_directory_exists_at.3
new file mode 100644 (file)
index 0000000..19dac31
--- /dev/null
@@ -0,0 +1,54 @@
+.TH f_directory_exists_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_directory_exists_at
+.SH SYNOPSIS
+.nf
+.B #include <directory.h>
+.sp
+\fBf_status_t f_directory_exists_at\fP(
+    \fBconst int               \fP\fIat_id\fP,
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst int               \fP\fIflag\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify whether or not a file exists at the given path and if that file is a directory or a symlink to a directory.
+.SH PARAMETERS
+.TP
+.B at_id
+The parent directory, as an open directory file descriptor, in which path is relative to.
+
+.TP
+.B path
+The file path to the directory.
+
+.TP
+.B flag
+Any valid flag, such as F_directory_at_path_empty_d, F_directory_at_automount_no_d, or F_directory_at_symlink_follow_no_d.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if path was found and path is a directory (or a symlink to a directory).
+\fBF_false\fP if path was found and path is not a directory.
+\fBF_file_found_not\fP if the path was not found.
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) if access to the file was denied.
+.br
+\fBF_directory_descriptor\fP (with error bit) for bad directory descriptor for at_id.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_directory/data/documentation/man/man3/f_directory_is.3 b/level_0/f_directory/data/documentation/man/man3/f_directory_is.3
new file mode 100644 (file)
index 0000000..37e3213
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_directory_is "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_directory_is
+.SH SYNOPSIS
+.nf
+.B #include <directory.h>
+.sp
+\fBf_status_t f_directory_is\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify whether or not a file exists at the given path and if that file is a directory.
+.SH PARAMETERS
+.TP
+.B path
+The file path to the directory.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if path was found and path is a directory.
+\fBF_false\fP if path was found and path is not a directory (this includes symlinks).
+\fBF_file_found_not\fP if the path was not found.
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) if access to the file was denied.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_directory/data/documentation/man/man3/f_directory_is_at.3 b/level_0/f_directory/data/documentation/man/man3/f_directory_is_at.3
new file mode 100644 (file)
index 0000000..1292e23
--- /dev/null
@@ -0,0 +1,54 @@
+.TH f_directory_is_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_directory_is_at
+.SH SYNOPSIS
+.nf
+.B #include <directory.h>
+.sp
+\fBf_status_t f_directory_is_at\fP(
+    \fBconst int               \fP\fIat_id\fP,
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst int               \fP\fIflag\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify whether or not a file exists at the given path within the parent directory and if that file is a directory.
+.SH PARAMETERS
+.TP
+.B at_id
+The parent directory, as an open directory file descriptor, in which path is relative to.
+
+.TP
+.B path
+The file path to the directory.
+
+.TP
+.B flag
+Any valid flag, such as F_directory_at_path_empty_d, F_directory_at_automount_no_d, or F_directory_at_symlink_follow_no_d.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if path was found and path is a directory.
+\fBF_false\fP if path was found and path is not a directory.
+\fBF_file_found_not\fP if the path was not found.
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) if access to the file was denied.
+.br
+\fBF_directory_descriptor\fP (with error bit) for bad directory descriptor for at_id.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_directory/data/documentation/man/man3/f_directory_list.3 b/level_0/f_directory/data/documentation/man/man3/f_directory_list.3
new file mode 100644 (file)
index 0000000..509cd0c
--- /dev/null
@@ -0,0 +1,56 @@
+.TH f_directory_list "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_directory_list
+.SH SYNOPSIS
+.nf
+.B #include <directory.h>
+.sp
+\fBf_status_t f_directory_list\fP(
+    \fBconst f_string_static_t                                \fP\fIpath\fP,
+    \fBint(*)(const struct dirent *)                          \fP\fIfilter\fP,
+    \fBint(*)(const struct dirent **, const struct dirent **) \fP\fIsort\fP,
+    \fBf_string_dynamics_t                                   *\fP\fInames\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+For some given path, print the names of each file and/or directory inside the directory.
+.PP
+Allows specifying a custom filter and custom sort.
+.SH PARAMETERS
+.TP
+.B path
+The file path to the directory.
+
+.TP
+.B filter
+A filter function of the form: int xxx(const struct direct *). Set to 0 to not use (NULL).
+
+.TP
+.B sort
+A sort function of the form: int xxx(const struct direct *, const struct direct *). Set to 0 to not use (NULL). There are two pre-made libc functions available for this: alphasort() and versionsort().
+
+.TP
+.B names
+Will be populated with the names of each file and/or directory inside path.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_directory_empty\fP if directory is empty.
+.br
+\fBF_array_too_large\fP (with error bit) if the directory buffer max length would be exceeded.
+.br
+\fBF_failure\fP (with error bit) if failed to read directory information.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_directory/data/documentation/man/man3/f_directory_open.3 b/level_0/f_directory/data/documentation/man/man3/f_directory_open.3
new file mode 100644 (file)
index 0000000..936d356
--- /dev/null
@@ -0,0 +1,71 @@
+.TH f_directory_open "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_directory_open
+.SH SYNOPSIS
+.nf
+.B #include <directory.h>
+.sp
+\fBf_status_t f_directory_open\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst bool              \fP\fIdereference\fP,
+    \fBint                    *\fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Open the directory specified by path.
+.PP
+This opens with O_PATH and O_CLOEXEC.
+.SH PARAMETERS
+.TP
+.B path
+The file path to the directory.
+
+.TP
+.B dereference
+Set to TRUE to dereferenc symlinks (often is what is desired). Set to FALSE to operate on the symlink itself.
+
+.TP
+.B id
+The file descriptor. This is updated with the result of open() or openat().
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_directory_found_not\fP (with error bit) if directory was not found.
+.br
+\fBF_failure\fP (with error bit) if failed to read directory information.
+.br
+\fBF_file_open_max\fP (with error bit) too many open files.
+.br
+\fBF_file_type_directory_not\fP (with error bit) file is not a directory.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on integer overflow.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for removing.
+.br
+\fBF_read_only\fP (with error bit) if file is read-only.
+.br
+\fBF_space_not\fP (with error bit) if file system is out of space (or file system quota is reached).
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_directory/data/documentation/man/man3/f_directory_open_at.3 b/level_0/f_directory/data/documentation/man/man3/f_directory_open_at.3
new file mode 100644 (file)
index 0000000..682b8f3
--- /dev/null
@@ -0,0 +1,78 @@
+.TH f_directory_open_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_directory_open_at
+.SH SYNOPSIS
+.nf
+.B #include <directory.h>
+.sp
+\fBf_status_t f_directory_open_at\fP(
+    \fBconst int               \fP\fIat_id\fP,
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst bool              \fP\fIdereference\fP,
+    \fBint                    *\fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Open the directory specified by path.
+.PP
+This opens with O_PATH and O_CLOEXEC.
+.SH PARAMETERS
+.TP
+.B at_id
+The parent directory, as an open directory file descriptor, in which path is relative to.
+
+.TP
+.B path
+The file path to the directory.
+
+.TP
+.B dereference
+Set to TRUE to dereferenc symlinks (often is what is desired). Set to FALSE to operate on the symlink itself.
+
+.TP
+.B id
+The file descriptor. This is updated with the result of open() or openat().
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_directory_found_not\fP (with error bit) if directory was not found.
+.br
+\fBF_directory_descriptor\fP (with error bit) for bad directory descriptor for at_id.
+.br
+\fBF_failure\fP (with error bit) if failed to read directory information.
+.br
+\fBF_file_open_max\fP (with error bit) too many open files.
+.br
+\fBF_file_type_directory_not\fP (with error bit) file is not a directory.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on integer overflow.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for removing.
+.br
+\fBF_read_only\fP (with error bit) if file is read-only.
+.br
+\fBF_space_not\fP (with error bit) if file system is out of space (or file system quota is reached).
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_directory/data/documentation/man/man3/f_directory_remove.3 b/level_0/f_directory/data/documentation/man/man3/f_directory_remove.3
new file mode 100644 (file)
index 0000000..f0aaa45
--- /dev/null
@@ -0,0 +1,71 @@
+.TH f_directory_remove "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_directory_remove
+.SH SYNOPSIS
+.nf
+.B #include <directory.h>
+.sp
+\fBf_status_t f_directory_remove\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst int               \fP\fIdepth_max\fP,
+    \fBconst bool              \fP\fIpreserve\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Remove a directory and possibly its contents.
+.SH PARAMETERS
+.TP
+.B path
+The file path to the directory.
+
+.TP
+.B depth_max
+Represents the max recursion depth, set to 0 to disable recursive delete.
+
+.TP
+.B preserve
+When depth_max > 0, this designates whether or not to preserve the directory at path. If TRUE, then only the content within the directory is deleted. If FALSE, then the directory at path and its content are deleted. When depth_max is 0, then this should only be FALSE (setting this to TRUE would be a no-op).
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_busy\fP (with error bit) if file is busy.
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_directory_empty_not\fP (with error bit) if the directory is not empty.
+.br
+\fBF_file_descriptor_max\fP (with error bit) if max file descriptors is reached.
+.br
+\fBF_file_found_not\fP (with error bit) if file not found.
+.br
+\fBF_file_open_max\fP (with error bit) too many open files.
+.br
+\fBF_file_type_directory\fP (with error bit) file is a directory (directories cannot be removed via this function).
+.br
+\fBF_input_output\fP (with error bit) if an I/O error occurred.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for removing.
+.br
+\fBF_read_only\fP (with error bit) if file is read-only.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_directory/data/documentation/man/man3/f_directory_remove_custom.3 b/level_0/f_directory/data/documentation/man/man3/f_directory_remove_custom.3
new file mode 100644 (file)
index 0000000..196a95d
--- /dev/null
@@ -0,0 +1,76 @@
+.TH f_directory_remove_custom "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_directory_remove_custom
+.SH SYNOPSIS
+.nf
+.B #include <directory.h>
+.sp
+\fBf_status_t f_directory_remove_custom\fP(
+    \fBconst f_string_static_t                                      \fP\fIpath\fP,
+    \fBconst int                                                    \fP\fIdepth_max\fP,
+    \fBconst bool                                                   \fP\fIpreserve\fP,
+    \fBint(*)(const char *, const struct stat *, int, struct FTW *) \fP\fIcustom\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Remove a directory and possibly its contents.
+.SH PARAMETERS
+.TP
+.B path
+The file path to the directory.
+
+.TP
+.B depth_max
+Represents the max recursion depth, set to 0 to disable recursive delete.
+
+.TP
+.B preserve
+When depth_max > 0, this designates whether or not to preserve the directory at path. If TRUE, then only the content within the directory is deleted. If FALSE, then the directory at path and its content are deleted. When depth_max is 0, then this should only be FALSE (setting this to TRUE would be a no-op).
+
+.TP
+.B custom
+A custom function to pass to nftw() instead of using the internal one. Such as a custom function for verbose printing of removed files.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_busy\fP (with error bit) if file is busy.
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_directory_empty_not\fP (with error bit) if the directory is not empty.
+.br
+\fBF_file_descriptor_max\fP (with error bit) if max file descriptors is reached.
+.br
+\fBF_file_found_not\fP (with error bit) if file not found.
+.br
+\fBF_file_open_max\fP (with error bit) too many open files.
+.br
+\fBF_file_type_directory\fP (with error bit) file is a directory (directories cannot be removed via this function).
+.br
+\fBF_input_output\fP (with error bit) if an I/O error occurred.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for removing.
+.br
+\fBF_read_only\fP (with error bit) if file is read-only.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_directory/data/documentation/man/man3/f_directory_touch.3 b/level_0/f_directory/data/documentation/man/man3/f_directory_touch.3
new file mode 100644 (file)
index 0000000..4152fbf
--- /dev/null
@@ -0,0 +1,74 @@
+.TH f_directory_touch "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_directory_touch
+.SH SYNOPSIS
+.nf
+.B #include <directory.h>
+.sp
+\fBf_status_t f_directory_touch\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst mode_t            \fP\fImode\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Update the files access and modification timestamp, creating the directory if it does not already exist.
+.PP
+When the file is created, it is created as a directory file.
+.SH PARAMETERS
+.TP
+.B path
+The path file name.
+
+.TP
+.B mode
+The file mode to use when (directory) file is created.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_busy\fP (with error bit) if file system is too busy to perform write.
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_directory_descriptor\fP (with error bit) for bad directory descriptor for at_id.
+.br
+\fBF_file_found\fP (with error bit) if a file aleady exists at the path.
+.br
+\fBF_file_open_max\fP (with error bit) when system-wide max open files is reached.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_filesystem_quota_reached\fP (with error bit) quota reached of file system is out of space.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for creating or linking.
+.br
+\fBF_read_only\fP (with error bit) if file system is read-only.
+.br
+\fBF_search\fP (with error bit) if search permission is denied for one of the paths to the file.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_directory/data/documentation/man/man3/f_directory_touch_at.3 b/level_0/f_directory/data/documentation/man/man3/f_directory_touch_at.3
new file mode 100644 (file)
index 0000000..eb77259
--- /dev/null
@@ -0,0 +1,84 @@
+.TH f_directory_touch_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_directory_touch_at
+.SH SYNOPSIS
+.nf
+.B #include <directory.h>
+.sp
+\fBf_status_t f_directory_touch_at\fP(
+    \fBconst int               \fP\fIat_id\fP,
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst mode_t            \fP\fImode\fP,
+    \fBconst int               \fP\fIflag\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Update the files access and modification timestamp, creating the file if it does not already exist.
+.PP
+When the file is created, it is created as a directory file.
+.SH PARAMETERS
+.TP
+.B at_id
+The parent directory, as an open directory file descriptor, in which path is relative to.
+
+.TP
+.B path
+The path file name.
+
+.TP
+.B mode
+The file mode to use when (directory) file is created.
+
+.TP
+.B flag
+Any valid flag, such as F_file_at_path_empty_d, F_file_at_automount_no_d, or F_file_at_symlink_follow_no_d.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_busy\fP (with error bit) if file system is too busy to perform write.
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_directory_descriptor\fP (with error bit) for bad directory descriptor for at_id.
+.br
+\fBF_file_found\fP (with error bit) if a file aleady exists at the path (when calling utimensat()).
+.br
+\fBF_file_open_max\fP (with error bit) when system-wide max open files is reached.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_filesystem_quota_reached\fP (with error bit) quota reached of file system is out of space.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for creating or linking.
+.br
+\fBF_read_only\fP (with error bit) if file system is read-only.
+.br
+\fBF_search\fP (with error bit) if search permission is denied for one of the paths to the file.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index bbd2984ca14e4d549b9e8e81332f11e9b047206d..9a1778664f0123f94c7d99d36e46e4ae9c525594 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library environment.c
 
 build_sources_headers environment.h environment/common.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_0/f_environment/data/documentation/man/man3/f_environment_clear.3 b/level_0/f_environment/data/documentation/man/man3/f_environment_clear.3
new file mode 100644 (file)
index 0000000..f68a617
--- /dev/null
@@ -0,0 +1,24 @@
+.TH f_environment_clear "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_environment_clear
+.SH SYNOPSIS
+.nf
+.B #include <environment.h>
+.sp
+\fBf_status_t f_environment_clear\fP(
+    \fBvoid     \fP\fI\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provides environment processing functionality, such as environment variable handling. Delete all environment variables.
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_failure\fP (with error bit) on failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_environment/data/documentation/man/man3/f_environment_exists.3 b/level_0/f_environment/data/documentation/man/man3/f_environment_exists.3
new file mode 100644 (file)
index 0000000..0a64eb1
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_environment_exists "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_environment_exists
+.SH SYNOPSIS
+.nf
+.B #include <environment.h>
+.sp
+\fBf_status_t f_environment_exists\fP(
+    \fBconst f_string_static_t \fP\fIname\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get a single environment variable.
+.PP
+The variable is copied into a new dynamically allocated string and is safe to alter.
+.SH PARAMETERS
+.TP
+.B name
+The name of the environment variable to get. The name string must not contain the '=' character. The name must be NULL terminated.
+
+.SH RETURN VALUE
+.PP
+\fBF_data_not\fP if name.used is 0.
+.br
+\fBF_true\fP on success and environment variable exists.
+.br
+\fBF_false\fP on success and environment variable does not exist.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_environment/data/documentation/man/man3/f_environment_get.3 b/level_0/f_environment/data/documentation/man/man3/f_environment_get.3
new file mode 100644 (file)
index 0000000..5bc8452
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_environment_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_environment_get
+.SH SYNOPSIS
+.nf
+.B #include <environment.h>
+.sp
+\fBf_status_t f_environment_get\fP(
+    \fBconst f_string_static_t   \fP\fIname\fP,
+    \fBf_string_dynamic_t *const \fP\fIvalue\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get a single environment variable.
+.PP
+The variable is copied into a new dynamically allocated string and is safe to alter.
+.SH PARAMETERS
+.TP
+.B name
+The name of the environment variable to get. The name string must not contain the '=' character. The name must be NULL terminated.
+
+.TP
+.B value
+The value associated with name. The value is be null terminated. The value is be appended (set value->used to 0 before calling this to fully replace).
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if name.used is 0.
+.br
+\fBF_exist_not\fP if name does not exist.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_environment/data/documentation/man/man3/f_environment_get_all.3 b/level_0/f_environment/data/documentation/man/man3/f_environment_get_all.3
new file mode 100644 (file)
index 0000000..866a6e2
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_environment_get_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_environment_get_all
+.SH SYNOPSIS
+.nf
+.B #include <environment.h>
+.sp
+\fBf_status_t f_environment_get_all\fP(
+    \fBf_string_maps_t *const \fP\fIenvironment\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get all environment variables.
+.PP
+The variables are copied into a new dynamically allocated map and is safe to alter.
+.SH PARAMETERS
+.TP
+.B environment
+An array of maps containing all available environment variable name and value pairs.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_maps_append().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_environment/data/documentation/man/man3/f_environment_secure_is.3 b/level_0/f_environment/data/documentation/man/man3/f_environment_secure_is.3
new file mode 100644 (file)
index 0000000..1f90fc6
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_environment_secure_is "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_environment_secure_is
+.SH SYNOPSIS
+.nf
+.B #include <environment.h>
+.sp
+\fBf_status_t f_environment_secure_is\fP(
+    \fBvoid     \fP\fI\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the environment is secure for calling getenv() safely for "secure execution".
+.PP
+This is intended to closely mimic the checks secure_getenv().
+.PP
+The process has the effective CAP_SETUID set.
+.PP
+The documentation for secure_getenv() is unclear on which capabilities are expected to be set. This takes a conservative approach and only returns true for the above mentioned capabilities.
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if the environment is secure according to the described rules.
+.br
+\fBF_false\fP if the environment is not secure according to the described rules.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if name is an invalid string.
+.br
+\fBF_prohibited\fP (with error bit) if the file system does not permit this operation (usually due to the cap_get_proc() call).
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_environment/data/documentation/man/man3/f_environment_set.3 b/level_0/f_environment/data/documentation/man/man3/f_environment_set.3
new file mode 100644 (file)
index 0000000..863ad18
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_environment_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_environment_set
+.SH SYNOPSIS
+.nf
+.B #include <environment.h>
+.sp
+\fBf_status_t f_environment_set\fP(
+    \fBconst f_string_static_t \fP\fIname\fP,
+    \fBconst f_string_static_t \fP\fIvalue\fP,
+    \fBconst bool              \fP\fIreplace\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Assign the given value to the named environment variable.
+.PP
+If the name does not exist, then it is created.
+.SH PARAMETERS
+.TP
+.B name
+The name of the environment variable to set. The name string must not contain the '=' character. The name must be NULL terminated.
+
+.TP
+.B value
+The value to assign to name. The name must be NULL terminated.
+
+.TP
+.B replace
+Set to TRUE to replace value if name already exists. Set to FALSE to not replace value if name already exists.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if name.used is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if name is an invalid string.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_environment/data/documentation/man/man3/f_environment_unset.3 b/level_0/f_environment/data/documentation/man/man3/f_environment_unset.3
new file mode 100644 (file)
index 0000000..9718002
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_environment_unset "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_environment_unset
+.SH SYNOPSIS
+.nf
+.B #include <environment.h>
+.sp
+\fBf_status_t f_environment_unset\fP(
+    \fBconst f_string_static_t \fP\fIname\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Remove the name environment variable.
+.SH PARAMETERS
+.TP
+.B name
+The name of the environment variable to remove. The name string must not contain the '=' character. The name must be NULL terminated.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if name.used is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if name is an invalid string.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 72c0fb93695a92f0541822e1f4de8f18975afbe3..bf9ccab075282c0ceede6b4bd167796dd9baca9c 100644 (file)
@@ -56,7 +56,7 @@ extern "C" {
  *   The execute status has no flags and is only 8-bits wide.
  *
  * @return
- *   The appropriate status code is returned on match (no bits, error or otherwise are set).
+ *   The appropriate status code is returned on match (no bits, error or otherwise are set for the status code if there is no error).
  *
  *   F_known_not (with error bit) if the given number has no known execute state to convert.
  */
index a5bedc0cfbe8d6ad2bf9669c401a16a4cc0f4785..6ff42cd80ae7ccb06de58cd0b076d085bda230a5 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library execute.c
 
 build_sources_headers execute.h execute/common.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_0/f_execute/data/documentation/man/man3/f_execute_status_from_status.3 b/level_0/f_execute/data/documentation/man/man3/f_execute_status_from_status.3
new file mode 100644 (file)
index 0000000..1f4ac90
--- /dev/null
@@ -0,0 +1,29 @@
+.TH f_execute_status_from_status "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_execute_status_from_status
+.SH SYNOPSIS
+.nf
+.B #include <execute.h>
+.sp
+\fBuint8_t f_execute_status_from_status\fP(
+    \fBf_status_t \fP\fIstatus\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert from F_status_t to execute status.
+.PP
+F_execute_code_last is returned when there are no matching execute states.
+.SH PARAMETERS
+.TP
+.B status
+The status to convert from. The execute status does not support flags and so flags on this are ignored.
+
+.SH RETURN VALUE
+.PP
+The appropriate execute status code is returned on match.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_execute/data/documentation/man/man3/f_execute_status_to_status.3 b/level_0/f_execute/data/documentation/man/man3/f_execute_status_to_status.3
new file mode 100644 (file)
index 0000000..bfd749a
--- /dev/null
@@ -0,0 +1,29 @@
+.TH f_execute_status_to_status "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_execute_status_to_status
+.SH SYNOPSIS
+.nf
+.B #include <execute.h>
+.sp
+\fBf_status_t f_execute_status_to_status\fP(
+    \fBuint8_t  \fP\fIstatus\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert execute status to F_status_t.
+.SH PARAMETERS
+.TP
+.B status
+An execute status number to convert. The execute status has no flags and is only 8-bits wide.
+
+.SH RETURN VALUE
+.PP
+The appropriate status code is returned on match (no bits, error or otherwise are set for the status code if there is no error).
+.br
+\fBF_known_not\fP (with error bit) if the given number has no known execute state to convert.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index eb903fd5047f22a2bda0f0374f2fec035f6eba5a..58dc1493f524afa17602dfd1ef949f49a7095345 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library file.c private-file.c file/common.c
 
 build_sources_headers file.h file/common.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_access.3 b/level_0/f_file/data/documentation/man/man3/f_file_access.3
new file mode 100644 (file)
index 0000000..7ad4f9d
--- /dev/null
@@ -0,0 +1,45 @@
+.TH f_file_access "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_access
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_access\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst int               \fP\fImode\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+A string that is analogous to f_string_dynamic_t but intended for static-only uses.
+.PP
+The f_string_static_t type should never be directly allocated or deallocated.
+.PP
+A special macro_f_string_static_t_initialize() is provided for the special purpose of easily initialize a static string. A special macro_f_string_static_t_initialize2() is provided for the special purpose of easily initialize a static string with an identical used and size.
+.PP
+string: The string. size: Total amount of space available. used: Total number of space used.
+.sp
+.RS
+.nf
+\fB
+struct f_string_static_t {
+  f_string_t       \fIstring\fP;
+  f_array_length_t \fIsize\fP;
+  f_array_length_t \fIused\fP;
+};
+\fP
+.fi
+.RE
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if requested access is allowed.
+.br
+\fBF_false\fP if requested access is denied.
+.br
+\fBF_data_not\fP if path.used is 0.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_access_at.3 b/level_0/f_file/data/documentation/man/man3/f_file_access_at.3
new file mode 100644 (file)
index 0000000..5118157
--- /dev/null
@@ -0,0 +1,68 @@
+.TH f_file_access_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_access_at
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_access_at\fP(
+    \fBconst int               \fP\fIat_id\fP,
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst int               \fP\fImode\fP,
+    \fBconst int               \fP\fIflag\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check if a file can be accessed.
+.PP
+Do not use this to check file access before immediately attempting to open a file due to the possibility that the permissions change between this call and the open call. Instead, use the f_file_open() directly.
+.SH PARAMETERS
+.TP
+.B at_id
+The parent directory, as an open directory file descriptor, in which path is relative to.
+
+.TP
+.B path
+The path file name.
+
+.TP
+.B mode
+The file mode to check access of.
+
+.TP
+.B flag
+Options to control how this operates.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if requested access is allowed.
+.br
+\fBF_false\fP if requested access is denied.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_directory_descriptor\fP (with error bit) when at_id is not a valid file descriptor (at_id must point to a directory).
+.br
+\fBF_directory_not\fP (with error bit) on invalid directory.
+.br
+\fBF_file_not\fP (with error bit) the file does not exist.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) for any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_clone.3 b/level_0/f_file/data/documentation/man/man3/f_file_clone.3
new file mode 100644 (file)
index 0000000..82c6d70
--- /dev/null
@@ -0,0 +1,98 @@
+.TH f_file_clone "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_clone
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_clone\fP(
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_static_t   \fP\fIdestination\fP,
+    \fBconst f_number_unsigned_t \fP\fIsize_block\fP,
+    \fBconst uint8_t             \fP\fIflag\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Copy a file, as well as its file mode and possibly the owner and group.
+.PP
+The paths must not contain NULL except for the terminating NULL. The paths must be NULL terminated.
+.PP
+For directory file types, this will only copy the directory itself and not its contents.
+.PP
+This does not copy unknown file types.
+.PP
+If f_file_stat_flag_reference_e, will operate directly on a link rather than what it references. If not f_file_stat_flag_reference_e, will dereference any links.
+.PP
+If either f_file_stat_flag_group_e or f_file_stat_flag_owner_e, will copy the owner and group ids. If neither f_file_stat_flag_group_e nor f_file_stat_flag_owner_e, will not copy the owner and group ids.
+.SH PARAMETERS
+.TP
+.B source
+The path to the file to copy from.
+
+.TP
+.B destination
+The path to copy to.
+
+.TP
+.B size_block
+The default number of chunks to read at a time with each chunk being 1-byte. Set to 0 to use default block read size.
+
+.TP
+.B flag
+If f_file_stat_flag_exclusive_e, will fail when file already exists. If not f_file_stat_flag_exclusive_e, will not fail if file already exists (existing file will be replaced).
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source.used or destination.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_access_group\fP (with error bit) if the current user does not have access to assign the specified group.
+.br
+\fBF_access_mode\fP (with error bit) if the current user does not have access to assign the file mode.
+.br
+\fBF_access_owner\fP (with error bit) if the current user does not have access to assign the specified owner.
+.br
+\fBF_busy\fP (with error bit) if file system is too busy to perform write.
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_file_found\fP (with error bit) if a file was found while exclusive is TRUE.
+.br
+\fBF_file_open_max\fP (with error bit) when system-wide max open files is reached.
+.br
+\fBF_file_read\fP (with error bit) on file read error.
+.br
+\fBF_file_write\fP (with error bit) on file write error.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for making changes.
+.br
+\fBF_read_only\fP (with error bit) if file is read-only.
+.br
+\fBF_space_not\fP (with error bit) if file system is out of space (or file system quota is reached).
+.br
+\fBF_supported_not\fP if copying a given type of file is unsupported.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_close.3 b/level_0/f_file/data/documentation/man/man3/f_file_close.3
new file mode 100644 (file)
index 0000000..3e979c8
--- /dev/null
@@ -0,0 +1,43 @@
+.TH f_file_close "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_close
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_close\fP(
+    \fBint *const \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Close an open file.
+.PP
+Will not flush before closing.
+.SH PARAMETERS
+.TP
+.B id
+The file descriptor.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_file_close\fP (with error bit) if fclose() failed for any other reason.
+.br
+\fBF_file_descriptor\fP (with error bit) if file descriptor is invalid.
+.br
+\fBF_file_synchronize\fP (with error bit) on flush failure.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_space_not\fP (with error bit) if file system is out of space (or file system quota is reached).
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_close_flush.3 b/level_0/f_file/data/documentation/man/man3/f_file_close_flush.3
new file mode 100644 (file)
index 0000000..362035c
--- /dev/null
@@ -0,0 +1,43 @@
+.TH f_file_close_flush "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_close_flush
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_close_flush\fP(
+    \fBint *const \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Close an open file.
+.PP
+Will flush before closing.
+.SH PARAMETERS
+.TP
+.B id
+The file descriptor.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_file_close\fP (with error bit) if fclose() failed for any other reason.
+.br
+\fBF_file_descriptor\fP (with error bit) if file descriptor is invalid.
+.br
+\fBF_file_synchronize\fP (with error bit) on flush failure.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_space_not\fP (with error bit) if file system is out of space (or file system quota is reached).
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_copy.3 b/level_0/f_file/data/documentation/man/man3/f_file_copy.3
new file mode 100644 (file)
index 0000000..487157e
--- /dev/null
@@ -0,0 +1,97 @@
+.TH f_file_copy "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_copy
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_copy\fP(
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_static_t   \fP\fIdestination\fP,
+    \fBconst f_mode_t            \fP\fImode\fP,
+    \fBconst f_number_unsigned_t \fP\fIsize_block\fP,
+    \fBconst uint8_t             \fP\fIflag\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Copy a file.
+.PP
+The paths must not contain NULL except for the terminating NULL. The paths must be NULL terminated.
+.PP
+For directory file types, this will only copy the directory itself and not its contents.
+.PP
+This does not copy unknown file types.
+.PP
+This does not set mode based on umask(), be sure to apply umask if so desired. (such as: mode & ~mask).
+.PP
+If f_file_stat_flag_reference_e, will operate directly on a link rather than what it references. If not f_file_stat_flag_reference_e, will dereference any links.
+.SH PARAMETERS
+.TP
+.B source
+The path to the file to copy from.
+
+.TP
+.B destination
+The path to copy to.
+
+.TP
+.B mode
+The file mode assigned to the destination file, based on the file type.
+
+.TP
+.B size_block
+The default number of chunks to read at a time with each chunk being 1-byte. Set to 0 to use default block read size.
+
+.TP
+.B flag
+If f_file_stat_flag_exclusive_e, will fail when file already exists. If not f_file_stat_flag_exclusive_e, will not fail if file already exists (existing file will be replaced).
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source.used or destination.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_busy\fP (with error bit) if file system is too busy to perform write.
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_file_found\fP (with error bit) if a file was found while exclusive is TRUE.
+.br
+\fBF_file_open_max\fP (with error bit) when system-wide max open files is reached.
+.br
+\fBF_file_read\fP (with error bit) on file read error.
+.br
+\fBF_file_write\fP (with error bit) on file write error.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for making changes.
+.br
+\fBF_read_only\fP (with error bit) if file is read-only.
+.br
+\fBF_space_not\fP (with error bit) if file system is out of space (or file system quota is reached).
+.br
+\fBF_supported_not\fP if copying a given type of file is unsupported.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_create.3 b/level_0/f_file/data/documentation/man/man3/f_file_create.3
new file mode 100644 (file)
index 0000000..b3f3b84
--- /dev/null
@@ -0,0 +1,73 @@
+.TH f_file_create "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_create
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_create\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst mode_t            \fP\fImode\fP,
+    \fBconst bool              \fP\fIexclusive\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create a (regular) file based on the given path and file mode.
+.PP
+The file will not be open after calling this.
+.SH PARAMETERS
+.TP
+.B path
+The path file name.
+
+.TP
+.B mode
+The file mode to open in.
+
+.TP
+.B exclusive
+If TRUE, will fail when file already exists. If FALSE, will not fail if file already exists.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_busy\fP (with error bit) if file system is too busy to perform write.
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_file_found\fP (with error bit) if a file was found while exclusive is TRUE.
+.br
+\fBF_file_open_max\fP (with error bit) when system-wide max open files is reached.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for making changes.
+.br
+\fBF_read_only\fP (with error bit) if file is read-only.
+.br
+\fBF_space_not\fP (with error bit) if file system is out of space (or file system quota is reached).
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_create_at.3 b/level_0/f_file/data/documentation/man/man3/f_file_create_at.3
new file mode 100644 (file)
index 0000000..aeb4e06
--- /dev/null
@@ -0,0 +1,80 @@
+.TH f_file_create_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_create_at
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_create_at\fP(
+    \fBconst int               \fP\fIat_id\fP,
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst mode_t            \fP\fImode\fP,
+    \fBconst bool              \fP\fIexclusive\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create a (regular) file based on the given path and file mode.
+.PP
+The file will not be open after calling this.
+.SH PARAMETERS
+.TP
+.B at_id
+The parent directory, as an open directory file descriptor, in which path is relative to.
+
+.TP
+.B path
+The path file name.
+
+.TP
+.B mode
+The file mode to open in.
+
+.TP
+.B exclusive
+If TRUE, will fail when file already exists. If FALSE, will not fail if file already exists.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_busy\fP (with error bit) if file system is too busy to perform write.
+.br
+\fBF_directory_descriptor\fP (with error bit) when at_id is not a valid file descriptor (at_id must point to a directory).
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_file_found\fP (with error bit) if a file was found while exclusive is TRUE.
+.br
+\fBF_file_open_max\fP (with error bit) when system-wide max open files is reached.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for making changes.
+.br
+\fBF_read_only\fP (with error bit) if file is read-only.
+.br
+\fBF_space_not\fP (with error bit) if file system is out of space (or file system quota is reached).
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_create_device.3 b/level_0/f_file/data/documentation/man/man3/f_file_create_device.3
new file mode 100644 (file)
index 0000000..2d205af
--- /dev/null
@@ -0,0 +1,70 @@
+.TH f_file_create_device "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_create_device
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_create_device\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst mode_t            \fP\fImode\fP,
+    \fBconst unsigned int      \fP\fImajor\fP,
+    \fBconst unsigned int      \fP\fIminor\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create a device node based on the given path and file mode.
+.PP
+Warning: Due to the current status of POSIX and LINUX in regards to major and minor devices, this utilizes the non-POSI makedev() function.
+.SH PARAMETERS
+.TP
+.B path
+The path file name.
+
+.TP
+.B mode
+The file mode to assign.
+
+.TP
+.B major
+The major device number for character and block file types. Is ignored by pipe file types.
+
+.TP
+.B minor
+The minor device number for character and block file types. Is ignored by pipe file types.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_file_found\fP (with error bit) if a file was found while exclusive is TRUE.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for making changes.
+.br
+\fBF_space_not\fP (with error bit) if file system is out of space (or file system quota is reached).
+.br
+\fBF_supported_not\fP (with error bit) for unsupported file types.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_create_device_at.3 b/level_0/f_file/data/documentation/man/man3/f_file_create_device_at.3
new file mode 100644 (file)
index 0000000..716dac5
--- /dev/null
@@ -0,0 +1,77 @@
+.TH f_file_create_device_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_create_device_at
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_create_device_at\fP(
+    \fBconst int               \fP\fIat_id\fP,
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst mode_t            \fP\fImode\fP,
+    \fBconst unsigned int      \fP\fImajor\fP,
+    \fBconst unsigned int      \fP\fIminor\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create a device node based on the given path and file mode.
+.PP
+Warning: Due to the current status of POSIX and LINUX in regards to major and minor devices, this utilizes the non-POSI makedev() function.
+.SH PARAMETERS
+.TP
+.B at_id
+The parent directory, as an open directory file descriptor, in which path is relative to.
+
+.TP
+.B path
+The path file name.
+
+.TP
+.B mode
+The file mode to assign.
+
+.TP
+.B major
+The major device number for character and block file types. Is ignored by pipe file types.
+
+.TP
+.B minor
+The minor device number for character and block file types. Is ignored by pipe file types.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_directory_descriptor\fP (with error bit) when at_id is not a valid file descriptor (at_id must point to a directory).
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_file_found\fP (with error bit) if a file was found while exclusive is TRUE.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for making changes.
+.br
+\fBF_space_not\fP (with error bit) if file system is out of space (or file system quota is reached).
+.br
+\fBF_supported_not\fP (with error bit) for unsupported file types.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_create_fifo.3 b/level_0/f_file/data/documentation/man/man3/f_file_create_fifo.3
new file mode 100644 (file)
index 0000000..2730469
--- /dev/null
@@ -0,0 +1,58 @@
+.TH f_file_create_fifo "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_create_fifo
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_create_fifo\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst mode_t            \fP\fImode\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create a fifo based on the given path and file mode.
+.SH PARAMETERS
+.TP
+.B path
+The path file name.
+
+.TP
+.B mode
+The file mode to assign.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_file_found\fP (with error bit) if a file was found while exclusive is TRUE.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or ififos are exhausted.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for making changes.
+.br
+\fBF_space_not\fP (with error bit) if file system is out of space (or file system quota is reached).
+.br
+\fBF_supported_not\fP (with error bit) for unsupported file types.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_create_fifo_at.3 b/level_0/f_file/data/documentation/man/man3/f_file_create_fifo_at.3
new file mode 100644 (file)
index 0000000..9099bbe
--- /dev/null
@@ -0,0 +1,65 @@
+.TH f_file_create_fifo_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_create_fifo_at
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_create_fifo_at\fP(
+    \fBconst int               \fP\fIat_id\fP,
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst mode_t            \fP\fImode\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create a fifo based on the given path and file mode.
+.SH PARAMETERS
+.TP
+.B at_id
+The parent directory, as an open directory file descriptor, in which path is relative to.
+
+.TP
+.B path
+The path file name.
+
+.TP
+.B mode
+The file mode to assign.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_directory_descriptor\fP (with error bit) when at_id is not a valid file descriptor (at_id must point to a directory).
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_file_found\fP (with error bit) if a file was found while exclusive is TRUE.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or ififos are exhausted.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for making changes.
+.br
+\fBF_space_not\fP (with error bit) if file system is out of space (or file system quota is reached).
+.br
+\fBF_supported_not\fP (with error bit) for unsupported file types.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_create_node.3 b/level_0/f_file/data/documentation/man/man3/f_file_create_node.3
new file mode 100644 (file)
index 0000000..7b08350
--- /dev/null
@@ -0,0 +1,63 @@
+.TH f_file_create_node "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_create_node
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_create_node\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst mode_t            \fP\fImode\fP,
+    \fBconst dev_t             \fP\fIdevice\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create a node based on the given path and file mode.
+.SH PARAMETERS
+.TP
+.B path
+The path file name.
+
+.TP
+.B mode
+The file mode to assign.
+
+.TP
+.B device
+The device number for character and block file types. Is ignored by pipe file types.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_file_found\fP (with error bit) if a file was found while exclusive is TRUE.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for making changes.
+.br
+\fBF_space_not\fP (with error bit) if file system is out of space (or file system quota is reached).
+.br
+\fBF_supported_not\fP (with error bit) for unsupported file types.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_create_node_at.3 b/level_0/f_file/data/documentation/man/man3/f_file_create_node_at.3
new file mode 100644 (file)
index 0000000..ab5837e
--- /dev/null
@@ -0,0 +1,70 @@
+.TH f_file_create_node_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_create_node_at
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_create_node_at\fP(
+    \fBconst int               \fP\fIat_id\fP,
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst mode_t            \fP\fImode\fP,
+    \fBconst dev_t             \fP\fIdevice\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create a node based on the given path and file mode.
+.SH PARAMETERS
+.TP
+.B at_id
+The parent directory, as an open directory file descriptor, in which path is relative to.
+
+.TP
+.B path
+The path file name.
+
+.TP
+.B mode
+The file mode to assign.
+
+.TP
+.B device
+The device number for character and block file types. Is ignored by pipe file types.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_directory_descriptor\fP (with error bit) when at_id is not a valid file descriptor (at_id must point to a directory).
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_file_found\fP (with error bit) if a file was found while exclusive is TRUE.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for making changes.
+.br
+\fBF_space_not\fP (with error bit) if file system is out of space (or file system quota is reached).
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.br
+\fBF_supported_not\fP (with error bit) for unsupported file types.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_descriptor.3 b/level_0/f_file/data/documentation/man/man3/f_file_descriptor.3
new file mode 100644 (file)
index 0000000..8920a40
--- /dev/null
@@ -0,0 +1,31 @@
+.TH f_file_descriptor "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_descriptor
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_descriptor\fP(
+    \fBf_file_t *const \fP\fIfile\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify the file descriptor of a valid file stream.
+.SH PARAMETERS
+.TP
+.B file
+The file stream to get descriptor of.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP is returned on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_stream_not\fP (with error bit) if file is not a valid stream.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_exists.3 b/level_0/f_file/data/documentation/man/man3/f_file_exists.3
new file mode 100644 (file)
index 0000000..f53656f
--- /dev/null
@@ -0,0 +1,52 @@
+.TH f_file_exists "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_exists
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_exists\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst bool              \fP\fIdereference\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify whether or not a file exists at the given path.
+.PP
+This does not require access on the file itself. This only requires access via the parent directories in the path.
+.SH PARAMETERS
+.TP
+.B path
+The path file name.
+
+.TP
+.B dereference
+Set to TRUE to dereference symlinks. Set to FALSE to operate on the symlink itself.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if path was found.
+.br
+\fBF_false\fP if path was not found.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) if access to the file was denied.
+.br
+\fBF_directory_not\fP (with error bit) on invalid directory.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_exists_at.3 b/level_0/f_file/data/documentation/man/man3/f_file_exists_at.3
new file mode 100644 (file)
index 0000000..135fd3f
--- /dev/null
@@ -0,0 +1,61 @@
+.TH f_file_exists_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_exists_at
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_exists_at\fP(
+    \fBconst int               \fP\fIat_id\fP,
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst int               \fP\fIflag\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify whether or not a file exists at the given path.
+.PP
+This does not require access on the file itself. This only requires access via the parent directories in the path.
+.SH PARAMETERS
+.TP
+.B at_id
+The parent directory, as an open directory file descriptor, in which path is relative to.
+
+.TP
+.B path
+The path file name.
+
+.TP
+.B flag
+Any valid flag, such as F_file_at_path_empty_d, F_file_at_automount_no_d, or F_file_at_symlink_follow_no_d.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if file exists.
+.br
+\fBF_false\fP if file does not exist.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_directory_descriptor\fP (with error bit) when at_id is not a valid file descriptor (at_id must point to a directory).
+.br
+\fBF_directory_not\fP (with error bit) on invalid directory.
+.br
+\fBF_false\fP (with error bit) on unknown/unhandled errors.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_flush.3 b/level_0/f_file/data/documentation/man/man3/f_file_flush.3
new file mode 100644 (file)
index 0000000..7839d3f
--- /dev/null
@@ -0,0 +1,41 @@
+.TH f_file_flush "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_flush
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_flush\fP(
+    \fBconst int \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Flush the file.
+.SH PARAMETERS
+.TP
+.B id
+The file descriptor.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP is returned on success.
+.br
+\fBF_file_descriptor\fP (with error bit) if file descriptor is invalid.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_space_not\fP (with error bit) if file system is out of space (or file system quota is reached).
+.br
+\fBF_supported_not\fP (with error bit) if the file system or file type does not support flushing.
+.br
+\fBF_failure\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_group_read.3 b/level_0/f_file/data/documentation/man/man3/f_file_group_read.3
new file mode 100644 (file)
index 0000000..8fa4f86
--- /dev/null
@@ -0,0 +1,55 @@
+.TH f_file_group_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_group_read
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_group_read\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst bool              \fP\fIdereference\fP,
+    \fBuid_t *const            \fP\fIgroup\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the current group of a file.
+.SH PARAMETERS
+.TP
+.B path
+The path file name.
+
+.TP
+.B dereference
+Set to TRUE to dereference symlinks (often is what is desired). Set to FALSE to operate on the symlink itself.
+
+.TP
+.B group
+The id of the file's group.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) if access to the file was denied.
+.br
+\fBF_directory_not\fP (with error bit) on invalid directory.
+.br
+\fBF_file_found_not\fP (with error bit) if the file was not found.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_is.3 b/level_0/f_file/data/documentation/man/man3/f_file_is.3
new file mode 100644 (file)
index 0000000..676a093
--- /dev/null
@@ -0,0 +1,59 @@
+.TH f_file_is "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_is
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_is\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst int               \fP\fItype\fP,
+    \fBconst bool              \fP\fIdereference\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify whether or not a file exists at the given path and if that file is a specific type.
+.PP
+This does not require access on the file itself. This only requires access via the parent directories in the path.
+.SH PARAMETERS
+.TP
+.B path
+The path file name.
+
+.TP
+.B type
+The type of the file.
+
+.TP
+.B dereference
+Set to TRUE to dereference symlinks (often is what is desired). Set to FALSE to operate on the symlink itself.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if path was found and path is type.
+.br
+\fBF_false\fP if path was found and path is not type.
+.br
+\fBF_file_found_not\fP if the path was not found.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) if access to the file was denied.
+.br
+\fBF_directory_not\fP (with error bit) on invalid directory.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_is_at.3 b/level_0/f_file/data/documentation/man/man3/f_file_is_at.3
new file mode 100644 (file)
index 0000000..498838d
--- /dev/null
@@ -0,0 +1,64 @@
+.TH f_file_is_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_is_at
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_is_at\fP(
+    \fBconst int               \fP\fIat_id\fP,
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst int               \fP\fItype\fP,
+    \fBconst int               \fP\fIflag\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify whether or not a file exists at the given path within the parent directory and if that file is a specific type.
+.SH PARAMETERS
+.TP
+.B at_id
+The parent directory, as an open directory file descriptor, in which path is relative to.
+
+.TP
+.B path
+The path file name.
+
+.TP
+.B type
+The type of the file.
+
+.TP
+.B flag
+Any valid flag, such as F_file_at_path_empty_d, F_file_at_automount_no_d, or F_file_at_symlink_follow_no_d.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if path was found and path is type.
+.br
+\fBF_false\fP if path was found and path is not type.
+.br
+\fBF_file_found_not\fP if the path was not found.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) if access to the file was denied.
+.br
+\fBF_directory_descriptor\fP (with error bit) when at_id is not a valid file descriptor (at_id must point to a directory).
+.br
+\fBF_directory_not\fP (with error bit) on invalid directory.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_link.3 b/level_0/f_file/data/documentation/man/man3/f_file_link.3
new file mode 100644 (file)
index 0000000..aa0ddee
--- /dev/null
@@ -0,0 +1,68 @@
+.TH f_file_link "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_link
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_link\fP(
+    \fBconst f_string_static_t \fP\fItarget\fP,
+    \fBconst f_string_static_t \fP\fIpoint\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create a symbolic link to a file.
+.PP
+This will not replace existing files/links. This does not validate the existence of target.
+.SH PARAMETERS
+.TP
+.B target
+A path that the link points to.
+
+.TP
+.B point
+A path to the link that does the pointing.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if target.used or point.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_busy\fP (with error bit) if file system is too busy to perform write.
+.br
+\fBF_file_found\fP (with error bit) if a file aleady exists at the path.
+.br
+\fBF_file_found_not\fP (with error bit) if a parent path in point does not exist or is a broken symlink.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for creating or linking.
+.br
+\fBF_read_only\fP (with error bit) if file system is read-only.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_link_at.3 b/level_0/f_file/data/documentation/man/man3/f_file_link_at.3
new file mode 100644 (file)
index 0000000..8c0d051
--- /dev/null
@@ -0,0 +1,75 @@
+.TH f_file_link_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_link_at
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_link_at\fP(
+    \fBconst int               \fP\fIat_id\fP,
+    \fBconst f_string_static_t \fP\fItarget\fP,
+    \fBconst f_string_static_t \fP\fIpoint\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create a symbolic link to a file.
+.PP
+This will not replace existing files/links. This does not validate the existence of target.
+.SH PARAMETERS
+.TP
+.B at_id
+The parent directory, as an open directory file descriptor, in which point path is relative to.
+
+.TP
+.B target
+A path that the link points to.
+
+.TP
+.B point
+A path to the link that does the pointing.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if target.used or point.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_busy\fP (with error bit) if file system is too busy to perform write.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_directory_descriptor\fP (with error bit) when at_id is not a valid file descriptor (at_id must point to a directory).
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_file_found\fP (with error bit) if a file aleady exists at the path.
+.br
+\fBF_file_found_not\fP (with error bit) if a parent path in point does not exist or is a broken symlink.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for creating or linking.
+.br
+\fBF_read_only\fP (with error bit) if file system is read-only.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_link_hard.3 b/level_0/f_file/data/documentation/man/man3/f_file_link_hard.3
new file mode 100644 (file)
index 0000000..121906b
--- /dev/null
@@ -0,0 +1,68 @@
+.TH f_file_link_hard "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_link_hard
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_link_hard\fP(
+    \fBconst f_string_static_t \fP\fItarget\fP,
+    \fBconst f_string_static_t \fP\fIpoint\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create a hard link to a file.
+.PP
+This will not replace existing files/links.
+.SH PARAMETERS
+.TP
+.B target
+A path that the link points to.
+
+.TP
+.B point
+A path to the link that does the pointing.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if target.used or point.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_busy\fP (with error bit) if file system is too busy to perform write.
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_file_found\fP (with error bit) if a file aleady exists at the path.
+.br
+\fBF_file_found_not\fP (with error bit) if a parent path in point does not exist or is a broken symlink.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for creating or linking.
+.br
+\fBF_read_only\fP (with error bit) if file system is read-only.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_link_hard_at.3 b/level_0/f_file/data/documentation/man/man3/f_file_link_hard_at.3
new file mode 100644 (file)
index 0000000..a86e929
--- /dev/null
@@ -0,0 +1,87 @@
+.TH f_file_link_hard_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_link_hard_at
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_link_hard_at\fP(
+    \fBconst int               \fP\fIat_id_target\fP,
+    \fBconst int               \fP\fIat_id_point\fP,
+    \fBconst f_string_static_t \fP\fItarget\fP,
+    \fBconst f_string_static_t \fP\fIpoint\fP,
+    \fBconst int               \fP\fIflag\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create a hard link to a file.
+.PP
+This will not replace existing files/links.
+.SH PARAMETERS
+.TP
+.B at_id_target
+The parent directory, as an open directory file descriptor, in which target path is relative to.
+
+.TP
+.B at_id_point
+The parent directory, as an open directory file descriptor, in which point path is relative to.
+
+.TP
+.B target
+A path that the link points to.
+
+.TP
+.B point
+A path to the link that does the pointing.
+
+.TP
+.B flag
+Any valid flag, such as F_file_at_path_empty_d, F_file_at_automount_no_d, or F_file_at_symlink_follow_no_d.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if target.used or point.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_busy\fP (with error bit) if file system is too busy to perform write.
+.br
+\fBF_directory_descriptor\fP (with error bit) when either at_id_target or at_id_point is not a valid file descriptor (at_id must point to a directory).
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_file_descriptor\fP (with error bit) if file descriptor is invalid.
+.br
+\fBF_file_found\fP (with error bit) if a file aleady exists at the path.
+.br
+\fBF_file_found_not\fP (with error bit) if a parent path in point does not exist or is a broken symlink.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for creating or linking.
+.br
+\fBF_read_only\fP (with error bit) if file system is read-only.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_link_read.3 b/level_0/f_file/data/documentation/man/man3/f_file_link_read.3
new file mode 100644 (file)
index 0000000..08ca94c
--- /dev/null
@@ -0,0 +1,65 @@
+.TH f_file_link_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_link_read
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_link_read\fP(
+    \fBconst f_string_static_t   \fP\fIpath\fP,
+    \fBconst bool                \fP\fIdereference\fP,
+    \fBf_string_dynamic_t *const \fP\fItarget\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the target a given link points to.
+.PP
+This does not require access on the file itself. This only requires access via the parent directories in the path.
+.SH PARAMETERS
+.TP
+.B path
+The path file name.
+
+.TP
+.B dereference
+Set to TRUE to dereference symlinks. Set to FALSE to operate on the symlink itself.
+
+.TP
+.B target
+Will be replaced with the path in which the link points to. Will be NULL terminated with the NULL at target.string[target.used];
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_file_found_not\fP (with error bit) if the file at path was not found.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if link target path is too large for string buffer size.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by() Errors (with error bit) from: f_string_dynamic_terminate_after()
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_link_read_at.3 b/level_0/f_file/data/documentation/man/man3/f_file_link_read_at.3
new file mode 100644 (file)
index 0000000..22a6b61
--- /dev/null
@@ -0,0 +1,72 @@
+.TH f_file_link_read_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_link_read_at
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_link_read_at\fP(
+    \fBconst int                 \fP\fIat_id\fP,
+    \fBconst f_string_static_t   \fP\fIpath\fP,
+    \fBconst int                 \fP\fIflag\fP,
+    \fBf_string_dynamic_t *const \fP\fItarget\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the target a given link points to.
+.PP
+This does not require access on the file itself. This only requires access via the parent directories in the path.
+.SH PARAMETERS
+.TP
+.B at_id
+The parent directory, as an open directory file descriptor, in which path is relative to.
+
+.TP
+.B path
+The path file name.
+
+.TP
+.B flag
+Any valid flag, such as F_file_at_path_empty_d, F_file_at_automount_no_d, or F_file_at_symlink_follow_no_d.
+
+.TP
+.B target
+Will be replaced with the path in which the link points to. Will be NULL terminated with the NULL at target.string[target.used];
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_directory_descriptor\fP (with error bit) when at_id is not a valid file descriptor (at_id must point to a directory).
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_file_found_not\fP (with error bit) if the file at path was not found.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if link target path is too large for string buffer size.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by() Errors (with error bit) from: f_string_dynamic_terminate_after()
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_mode_determine.3 b/level_0/f_file/data/documentation/man/man3/f_file_mode_determine.3
new file mode 100644 (file)
index 0000000..fd04f03
--- /dev/null
@@ -0,0 +1,53 @@
+.TH f_file_mode_determine "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_mode_determine
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_mode_determine\fP(
+    \fBconst mode_t        \fP\fImode_file\fP,
+    \fBconst f_file_mode_t \fP\fImode_change\fP,
+    \fBconst uint8_t       \fP\fImode_replace\fP,
+    \fBconst bool          \fP\fIdirectory_is\fP,
+    \fBmode_t *const       \fP\fImode\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Determine how the mode should be applied based on different file properties and the given mode properties.
+.PP
+This does not set mode based on umask(), which is already applied if f_file_mode_from_string() was used to create mode_change.
+.PP
+apparently "u+g" is valid such that the mode from the group (g) is applied to the user (u) mode.
+.SH PARAMETERS
+.TP
+.B mode_file
+The mode_t value representing the file's current mode. This is expected to be populated from (struct stat).st_mode.
+
+.TP
+.B mode_change
+The file mode values to change.
+
+.TP
+.B mode_replace
+The modes designated to be replaced instead of simply changed.
+
+.TP
+.B directory_is
+Set to TRUE if the file is a directory, FALSE otherwise.
+
+.TP
+.B mode
+The determined mode.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_mode_from_string.3 b/level_0/f_file/data/documentation/man/man3/f_file_mode_from_string.3
new file mode 100644 (file)
index 0000000..e85612c
--- /dev/null
@@ -0,0 +1,72 @@
+.TH f_file_mode_from_string "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_mode_from_string
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_mode_from_string\fP(
+    \fBconst f_string_static_t \fP\fIcode\fP,
+    \fBconst mode_t            \fP\fIumask\fP,
+    \fBf_file_mode_t *const    \fP\fImode\fP,
+    \fBuint8_t *const          \fP\fIreplace\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the file mode id from a string syntax.
+.PP
+The string syntax is defined as follows: '([ugoa]*[-+=]{0,1}([rwxXst]|[ugo])+([,][ugoa]*[-+=]{0,1}([rwxXst]|[ugo])+)*)|([-+=]{0,1}0*[0-7]{1,4})'.
+.PP
+Such that: 'u' = apply to user. 'g' = apply to group. 'o' = apply to other/world. 'a' = apply to all (user, group, and other/world). '-' = remove the specified modes. '+' = add the specified modes. '=' = overwrite all existing modes with this set. 'r' = read mode. 'w' = write mode. 'x' = execute mode. 'X' = execute mode, only if already executable directory or is file with owner already has executable bit. 's' = set-gid/set-uid mode. 't' = sticky-bit mode. '0' = no mode. '1' = execute mode. '2' = write mode. '3' = execute and write mode. '4' = read mode. '5' = execute and read mode. '6' = read and write mode. '7' = execute, read, and write mode.
+.PP
+When there are 4 digits with a non-zero leading digit (such as 2000 or 002000): '1' = sticky-bit mode. '2' = set-gid mode. '3' = sticky-bit and set-gid mode. '4' = set-uid mode. '5' = sticky-bit and set-uid mode. '6' = set-uid and set-gid mode. '7' = sticky-bit, set-uid, and set-gid mode.
+.PP
+When using digits, each set of 0-7 represents the following: [0]+ = set all bits to 0. [0-7] = apply to other/world. [0-7][0-7] = first ([1-7]) to group and second ([0-7]) to other/world. [0-7][0-7][0-7] = first ([1-7]) to owner, second ([0-7]) to group, and third ([0-7]) to other/world. [0-7][0-7][0-7][0-7] = first ([1-7]) to stick/set-uid/set-gid, second ([0-7]) to owner, third ([0-7]) to owner, and fourth ([0-7]) to other/world.
+.PP
+When using digits, the umask is always ignored. When there is a leading '0' or '=' when using digits, then the special bits should be replaced. Otherwise, the current special bits are intended to be respected (designated by F_file_mode_t_replace_directory_d).
+.PP
+When using non-digits and '+', '-', or '=' are specified without a leading 'a', 'u', 'g', or 'o', then the mode operations should be performed against the current umask. These are designated with the umask hows, such as f_file_mode_how_umask_replace.
+.PP
+This means that "chmod 1 some_directory" would not change the setuid/setgid/sticky bits, however, in practice it does change it!
+.PP
+Considering the behavior, assume that when "=" or a leading "0" is provided, this will change the setuid/setgid/sticky bits, otherwise it preserves those bits for directories.
+.PP
+the possibilities are a bit extensive and this needs additional review; remove this fixme when this review is completed.
+.PP
+apparently "u+g" is valid such that the mode from the group (g) is applied to the user (u) mode.
+.PP
+The flags F_file_mode_t_replace_* are used to designate which mask bits are to be replaced. For example F_file_mode_t_replace_owner_d would designate that the owner bits are to be replaced. A value of 0 means that there are no replacements being made.
+.PP
+Replacements replace the entire existing mode values where as "add" and "subtract" add or subtract modes, respectively, to the existing mode values.
+.SH PARAMETERS
+.TP
+.B code
+A NULL terminated string designating the desired mode, following the above string syntax.
+
+.TP
+.B umask
+The umask to be applied to the file mode, when applicable.
+
+.TP
+.B mode
+The determined mode. This uses bitwise data.
+
+.TP
+.B replace
+The determined modes that are to be replaced, such as: F_file_mode_t_replace_owner_d. This uses bitwise data.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_syntax\fP (with error bit) if the string fails to follow the syntax rules.
+.br
+The parameters how, mode_normal, and mode_executable are all set to 0 on error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_mode_read.3 b/level_0/f_file/data/documentation/man/man3/f_file_mode_read.3
new file mode 100644 (file)
index 0000000..301f10c
--- /dev/null
@@ -0,0 +1,57 @@
+.TH f_file_mode_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_mode_read
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_mode_read\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst bool              \fP\fIdereference\fP,
+    \fBmode_t *const           \fP\fImode\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the current file mode as an f_file_mode_t.
+.PP
+The file mode contains more than the file modes such as read, write, and execute. The file mode also returns the file type. This means that this function must handle dereferencing as needed even if the file is a symbolic link.
+.SH PARAMETERS
+.TP
+.B path
+The path file name.
+
+.TP
+.B dereference
+Set to TRUE to dereference symlinks. Set to FALSE to operate on the symlink itself.
+
+.TP
+.B mode
+The read file mode.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) if access to the file was denied.
+.br
+\fBF_directory_not\fP (with error bit) on invalid directory.
+.br
+\fBF_file_found_not\fP (with error bit) if the file was not found.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_mode_read_at.3 b/level_0/f_file/data/documentation/man/man3/f_file_mode_read_at.3
new file mode 100644 (file)
index 0000000..5390d9d
--- /dev/null
@@ -0,0 +1,62 @@
+.TH f_file_mode_read_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_mode_read_at
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_mode_read_at\fP(
+    \fBconst int               \fP\fIat_id\fP,
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst int               \fP\fIflag\fP,
+    \fBmode_t *const           \fP\fImode\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the current file mode as an f_file_mode_t.
+.SH PARAMETERS
+.TP
+.B at_id
+The parent directory, as an open directory file descriptor, in which path is relative to.
+
+.TP
+.B path
+The path file name.
+
+.TP
+.B flag
+Any valid flag, such as F_file_at_path_empty_d, F_file_at_automount_no_d, or F_file_at_symlink_follow_no_d.
+
+.TP
+.B mode
+The read file mode.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) if access to the file was denied.
+.br
+\fBF_directory_descriptor\fP (with error bit) when at_id is not a valid file descriptor (at_id must point to a directory).
+.br
+\fBF_directory_not\fP (with error bit) on invalid directory.
+.br
+\fBF_file_found_not\fP (with error bit) if the file was not found.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_mode_set.3 b/level_0/f_file/data/documentation/man/man3/f_file_mode_set.3
new file mode 100644 (file)
index 0000000..79e5de9
--- /dev/null
@@ -0,0 +1,58 @@
+.TH f_file_mode_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_mode_set
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_mode_set\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst mode_t            \fP\fImode\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Change mode of a given file at the specified path.
+.PP
+This does not set mode based on umask(), be sure to apply umask if so desired. (such as: mode & ~mask).
+.SH PARAMETERS
+.TP
+.B path
+The path file name.
+
+.TP
+.B mode
+The new mode to use.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_access_mode\fP (with error bit) if the current user does not have access to assign the file mode.
+.br
+\fBF_directory_not\fP (with error bit) on invalid directory.
+.br
+\fBF_file_found_not\fP (with error bit) if file at path was not found.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_read_only\fP (with error bit) if file is read-only.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_mode_set_at.3 b/level_0/f_file/data/documentation/man/man3/f_file_mode_set_at.3
new file mode 100644 (file)
index 0000000..bcacef6
--- /dev/null
@@ -0,0 +1,65 @@
+.TH f_file_mode_set_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_mode_set_at
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_mode_set_at\fP(
+    \fBconst int               \fP\fIat_id\fP,
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst mode_t            \fP\fImode\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Change mode of a given file at the specified path.
+.PP
+This does not set mode based on umask(), be sure to apply umask if so desired. (such as: mode & ~mask).
+.SH PARAMETERS
+.TP
+.B at_id
+The parent directory, as an open directory file descriptor, in which path is relative to.
+
+.TP
+.B path
+The path file name.
+
+.TP
+.B mode
+The new mode to use.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_access_mode\fP (with error bit) if the current user does not have access to assign the file mode.
+.br
+\fBF_file_found_not\fP (with error bit) if file at path was not found.
+.br
+\fBF_directory_descriptor\fP (with error bit) when at_id is not a valid file descriptor (at_id must point to a directory).
+.br
+\fBF_directory_not\fP (with error bit) on invalid directory.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_read_only\fP (with error bit) if file is read-only.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_mode_to_mode.3 b/level_0/f_file/data/documentation/man/man3/f_file_mode_to_mode.3
new file mode 100644 (file)
index 0000000..857b8be
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_file_mode_to_mode "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_mode_to_mode
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_mode_to_mode\fP(
+    \fBconst f_file_mode_t \fP\fIfrom\fP,
+    \fBmode_t *const       \fP\fIto\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert an f_file_mode_t type to a mode_t type.
+.PP
+This essentially converts all "add" codes from an f_file_mode_t to a mode_t, ignoring the "subtract" codes.
+.SH PARAMETERS
+.TP
+.B from
+The file mode to convert from.
+
+.TP
+.B to
+The determined mode.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_name_base.3 b/level_0/f_file/data/documentation/man/man3/f_file_name_base.3
new file mode 100644 (file)
index 0000000..f801375
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_file_name_base "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_name_base
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_name_base\fP(
+    \fBconst f_string_static_t   \fP\fIpath\fP,
+    \fBf_string_dynamic_t *const \fP\fIname_base\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the base name of a file path.
+.SH PARAMETERS
+.TP
+.B path
+The path file name. Need not be NULL terminated.
+
+.TP
+.B name_base
+The resulting base name as per basename(). The base name is appended onto this. This is NULL terminated after the name_directory.used.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if string is too large to store in the buffer.
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_name_directory.3 b/level_0/f_file/data/documentation/man/man3/f_file_name_directory.3
new file mode 100644 (file)
index 0000000..541cbcd
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_file_name_directory "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_name_directory
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_name_directory\fP(
+    \fBconst f_string_static_t   \fP\fIpath\fP,
+    \fBf_string_dynamic_t *const \fP\fIname_directory\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the directory name of a file path.
+.PP
+This does not consider '.' a directory for the purposes of appending the directory.
+.SH PARAMETERS
+.TP
+.B path
+The path file name. Need not be NULL terminated.
+
+.TP
+.B name_directory
+The resulting base name as per dirname(). The directory name is appended onto this. This is NULL terminated after the name_directory.used.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if string is too large to store in the buffer.
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by(). Errors (with error bit) from: f_string_dynamic_terminate_after().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_open.3 b/level_0/f_file/data/documentation/man/man3/f_file_open.3
new file mode 100644 (file)
index 0000000..db9c4d0
--- /dev/null
@@ -0,0 +1,79 @@
+.TH f_file_open "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_open
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_open\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst mode_t            \fP\fImode\fP,
+    \fBf_file_t *const         \fP\fIfile\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Open a particular file and save its stream.
+.PP
+This will open the file as a file descriptor. This does not open a file stream.
+.SH PARAMETERS
+.TP
+.B path
+The path file name.
+
+.TP
+.B mode
+The file mode to open in.
+
+.TP
+.B file
+The data related to the file being opened. This will be updated with the file descriptor.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP is returned on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_busy\fP (with error bit) if file system is too busy to perform write.
+.br
+\fBF_directory\fP (with error bit) if path is a directory and is unable to access a directory (read, write, already exists, etc.. depending on requested open action).
+.br
+\fBF_file_found_not\fP (with error bit) if the file was not found.
+.br
+\fBF_file_open_max\fP (with error bit) when system-wide max open files is reached.
+.br
+\fBF_file_type_not_directory\fP (with error bit) if
+.br
+\fBF_NOTIFY\fP was specified and file.id is not a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name is too long.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for making changes.
+.br
+\fBF_read_only\fP (with error bit) if file is read-only.
+.br
+\fBF_supported_not\fP (with error bit) fo unsupported file types.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_open_at.3 b/level_0/f_file/data/documentation/man/man3/f_file_open_at.3
new file mode 100644 (file)
index 0000000..4a8076e
--- /dev/null
@@ -0,0 +1,54 @@
+.TH f_file_open_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_open_at
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_open_at\fP(
+    \fBconst int               \fP\fIat_id\fP,
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst mode_t            \fP\fImode\fP,
+    \fBf_file_t *const         \fP\fIfile\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Open a particular file and save its stream.
+.PP
+This will open the file as a file descriptor. This does not open a file stream.
+.SH PARAMETERS
+.TP
+.B at_id
+The parent directory, as an open directory file descriptor, in which path is relative to.
+
+.TP
+.B path
+The path file name.
+
+.TP
+.B mode
+The file mode to open in.
+
+.TP
+.B file
+The data related to the file being opened. This will be updated with the file descriptor.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_directory_descriptor\fP (with error bit) for bad directory descriptor for at_id.
+.br
+\fBF_file_found_not\fP (with error bit) if the file was not found.
+.br
+\fBF_file_open\fP (with error bit) if the file is already open.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_owner_read.3 b/level_0/f_file/data/documentation/man/man3/f_file_owner_read.3
new file mode 100644 (file)
index 0000000..e1ae3fc
--- /dev/null
@@ -0,0 +1,55 @@
+.TH f_file_owner_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_owner_read
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_owner_read\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst bool              \fP\fIdereference\fP,
+    \fBuid_t *const            \fP\fIowner\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the current owner of a file.
+.SH PARAMETERS
+.TP
+.B path
+The path file name.
+
+.TP
+.B dereference
+Set to TRUE to dereference symlinks (often is what is desired). Set to FALSE to operate on the symlink itself.
+
+.TP
+.B owner
+The id of the file's owner.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) if access to the file was denied.
+.br
+\fBF_directory_not\fP (with error bit) on invalid directory.
+.br
+\fBF_file_found_not\fP (with error bit) if the file was not found.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_read.3 b/level_0/f_file/data/documentation/man/man3/f_file_read.3
new file mode 100644 (file)
index 0000000..45b4c7b
--- /dev/null
@@ -0,0 +1,52 @@
+.TH f_file_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_read
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_read\fP(
+    \fBconst f_file_t            \fP\fIfile\fP,
+    \fBf_string_dynamic_t *const \fP\fIbuffer\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Read until EOF is reached.
+.PP
+To determine how much was read into the buffer, record buffer->used before execution and compare to buffer->used after execution.
+.SH PARAMETERS
+.TP
+.B file
+The file to read. The file must already be open.
+
+.TP
+.B buffer
+The buffer the file is being read into. The contents of the file is appended into this buffer.
+
+.SH RETURN VALUE
+.PP
+\fBF_none_eof\fP on success and EOF was reached.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the read would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_read_block.3 b/level_0/f_file/data/documentation/man/man3/f_file_read_block.3
new file mode 100644 (file)
index 0000000..efc924e
--- /dev/null
@@ -0,0 +1,52 @@
+.TH f_file_read_block "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_read_block
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_read_block\fP(
+    \fBconst f_file_t            \fP\fIfile\fP,
+    \fBf_string_dynamic_t *const \fP\fIbuffer\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Read until a single block is filled or EOF is reached.
+.PP
+To check how much was read into the buffer, record buffer->used before execution and compare to buffer->used after execution.
+.SH PARAMETERS
+.TP
+.B file
+The file to read. The file must already be open.
+
+.TP
+.B buffer
+The buffer the file is being read into. The contents of the file is appended into this buffer.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eof\fP on success and EOF was reached.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the read would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_read_until.3 b/level_0/f_file/data/documentation/man/man3/f_file_read_until.3
new file mode 100644 (file)
index 0000000..bf7781d
--- /dev/null
@@ -0,0 +1,61 @@
+.TH f_file_read_until "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_read_until
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_read_until\fP(
+    \fBconst f_file_t            \fP\fIfile\fP,
+    \fBconst f_array_length_t    \fP\fItotal\fP,
+    \fBf_string_dynamic_t *const \fP\fIbuffer\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Read until a given number or EOF is reached, storing it in the buffer.
+.PP
+To determine how much was read into the buffer, record buffer->used before execution and compare to buffer->used after execution.
+.PP
+This is different from simply using the file.size_read. The file.size_read represents the amount to process at a given time. The total represents the maximum number of file.size_read to process. For example, if file.size_read is 16 and total is 128, then this function would need to be called 8 times until total is reached.
+.SH PARAMETERS
+.TP
+.B file
+The file to read. The file must already be open.
+
+.TP
+.B total
+The total bytes to read, unless EOF is reached first.
+
+.TP
+.B buffer
+The buffer the file is being read into.
+
+.SH RETURN VALUE
+.PP
+\fBF_none_eof\fP on success and EOF was reached.
+.br
+\fBF_none_stop\fP on success and total was reached.
+.br
+\fBF_data_not\fP if total is 0.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the read would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_remove.3 b/level_0/f_file/data/documentation/man/man3/f_file_remove.3
new file mode 100644 (file)
index 0000000..6344403
--- /dev/null
@@ -0,0 +1,53 @@
+.TH f_file_remove "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_remove
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_remove\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Remove a file.
+.SH PARAMETERS
+.TP
+.B path
+The path file name.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_busy\fP (with error bit) if file is busy.
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_file_found_not\fP (with error bit) if file not found.
+.br
+\fBF_file_type_directory\fP (with error bit) file is a directory (directories cannot be removed via this function).
+.br
+\fBF_input_output\fP (with error bit) if an I/O error occurred.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for making changes.
+.br
+\fBF_read_only\fP (with error bit) if file is read-only.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_remove_at.3 b/level_0/f_file/data/documentation/man/man3/f_file_remove_at.3
new file mode 100644 (file)
index 0000000..0049017
--- /dev/null
@@ -0,0 +1,65 @@
+.TH f_file_remove_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_remove_at
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_remove_at\fP(
+    \fBconst int               \fP\fIat_id\fP,
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst int               \fP\fIflag\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Remove a file.
+.SH PARAMETERS
+.TP
+.B at_id
+The parent directory, as an open directory file descriptor, in which path is relative to.
+
+.TP
+.B path
+The path file name.
+
+.TP
+.B flag
+Any valid flag, such as F_file_at_path_empty_d, F_file_at_automount_no_d, or F_file_at_symlink_follow_no_d.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_busy\fP (with error bit) if file is busy.
+.br
+\fBF_directory_descriptor\fP (with error bit) when at_id is not a valid file descriptor (at_id must point to a directory).
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_file_found_not\fP (with error bit) if file not found.
+.br
+\fBF_file_type_directory\fP (with error bit) file is a directory (directories cannot be removed via this function).
+.br
+\fBF_input_output\fP (with error bit) if an I/O error occurred.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for making changes.
+.br
+\fBF_read_only\fP (with error bit) if file is read-only.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_rename.3 b/level_0/f_file/data/documentation/man/man3/f_file_rename.3
new file mode 100644 (file)
index 0000000..5716857
--- /dev/null
@@ -0,0 +1,74 @@
+.TH f_file_rename "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_rename
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_rename\fP(
+    \fBconst f_string_static_t \fP\fIsource\fP,
+    \fBconst f_string_static_t \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Rename a file.
+.PP
+The paths must not contain NULL except for the terminating NULL. The paths must be NULL terminated.
+.PP
+This essentially renames a file but can also change the file's path, which is identical to a move. However, renames only work within a file system and cannot be moved to another file system.
+.PP
+If destination already exists, then according to rename(), destination will be atomically replaced. Which, if destination is a directory, then that directory must either not exist or be empty.
+.SH PARAMETERS
+.TP
+.B source
+The path to the file to copy from.
+
+.TP
+.B destination
+The path to copy to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.SH AUTHOR
+Written by Kevin Day.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_busy\fP (with error bit) if file system is too busy to perform write.
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_directory_empty_not\fP (with error bit) if the destination is a non-empty directory.
+.br
+\fBF_file_found_not\fP (with error bit) if file at path was not found.
+.br
+\fBF_file_type_directory\fP (with error bit) if destination is a directory but source is not.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_link\fP (with error bit) if source or destination has the maxiumum associated links.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_mount\fP (with error bit) if source and destination are not within the same mounted filesystems.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for making changes.
+.br
+\fBF_read_only\fP (with error bit) if file is read-only.
+.br
+\fBF_space_not\fP (with error bit) if file system is out of space (or file system quota is reached).
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_rename_at.3 b/level_0/f_file/data/documentation/man/man3/f_file_rename_at.3
new file mode 100644 (file)
index 0000000..7882eec
--- /dev/null
@@ -0,0 +1,91 @@
+.TH f_file_rename_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_rename_at
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_rename_at\fP(
+    \fBconst int               \fP\fIat_id\fP,
+    \fBconst int               \fP\fIto_id\fP,
+    \fBconst f_string_static_t \fP\fIsource\fP,
+    \fBconst f_string_static_t \fP\fIdestination\fP,
+    \fBconst unsigned int      \fP\fIflag\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Rename a file.
+.PP
+The paths must not contain NULL except for the terminating NULL. The paths must be NULL terminated.
+.PP
+This essentially renames a file but can also change the file's path, which is identical to a move. However, renames only work within a file system and cannot be moved to another file system.
+.PP
+If destination already exists, then according to rename(), destination will be atomically replaced. Which, if destination is a directory, then that directory must either not exist or be empty.
+.SH PARAMETERS
+.TP
+.B at_id
+The parent directory, as an open directory file descriptor, in which the source is relative to.
+
+.TP
+.B to_id
+The parent directory, as an open directory file descriptor, in which the destination is relative to.
+
+.TP
+.B source
+The path to the file to copy from.
+
+.TP
+.B destination
+The path to copy to.
+
+.TP
+.B flag
+Any valid flag, such as F_file_at_path_empty_d, F_file_at_automount_no_d, or F_file_at_symlink_follow_no_d. The POSIX renameat() doesn't support flag but Linux has a renameat2() that does. If this is compiled with renameat2 support (), then flag is used otherwise flag is always 0 regardless of this property.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_busy\fP (with error bit) if file system is too busy to perform write.
+.br
+\fBF_directory_descriptor\fP (with error bit) when at_id is not a valid file descriptor (at_id must point to a directory).
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_directory_empty_not\fP (with error bit) if the destination is a non-empty directory.
+.br
+\fBF_file_found_not\fP (with error bit) if file at path was not found.
+.br
+\fBF_file_type_directory\fP (with error bit) if destination is a directory but source is not.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_link\fP (with error bit) if source or destination has the maxiumum associated links.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_mount\fP (with error bit) if source and destination are not within the same mounted filesystems.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for making changes.
+.br
+\fBF_read_only\fP (with error bit) if file is read-only.
+.br
+\fBF_space_not\fP (with error bit) if file system is out of space (or file system quota is reached).
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_role_change.3 b/level_0/f_file/data/documentation/man/man3/f_file_role_change.3
new file mode 100644 (file)
index 0000000..6b7e658
--- /dev/null
@@ -0,0 +1,70 @@
+.TH f_file_role_change "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_role_change
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_role_change\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst uid_t             \fP\fIuid\fP,
+    \fBconst gid_t             \fP\fIgid\fP,
+    \fBconst bool              \fP\fIdereference\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Change owner and/or group of a given file at the specified path.
+.SH PARAMETERS
+.TP
+.B path
+The path file name.
+
+.TP
+.B uid
+The new user id to use. Set to -1 to not change.
+
+.TP
+.B gid
+The new group id to use. Set to -1 to not change.
+
+.TP
+.B dereference
+Set to TRUE to dereference symlinks (often is what is desired). Set to FALSE to operate on the symlink itself.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if either both uid and gid are -1 or path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_access_group\fP (with error bit) if the current user does not have access to assign the specified group.
+.br
+\fBF_access_owner\fP (with error bit) if the current user does not have access to assign the specified owner.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_directory_not\fP (with error bit) on invalid directory.
+.br
+\fBF_file_found_not\fP (with error bit) if file at path was not found.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_read_only\fP (with error bit) if file is read-only.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_role_change_at.3 b/level_0/f_file/data/documentation/man/man3/f_file_role_change_at.3
new file mode 100644 (file)
index 0000000..676fb3b
--- /dev/null
@@ -0,0 +1,77 @@
+.TH f_file_role_change_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_role_change_at
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_role_change_at\fP(
+    \fBconst int               \fP\fIat_id\fP,
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst uid_t             \fP\fIuid\fP,
+    \fBconst gid_t             \fP\fIgid\fP,
+    \fBconst int               \fP\fIflag\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Change owner and/or group of a given file at the specified path.
+.SH PARAMETERS
+.TP
+.B at_id
+The parent directory, as an open directory file descriptor, in which path is relative to.
+
+.TP
+.B path
+The path file name.
+
+.TP
+.B uid
+The new user id to use. Set to -1 to not change.
+
+.TP
+.B gid
+The new group id to use. Set to -1 to not change.
+
+.TP
+.B flag
+Any valid flag, such as F_file_at_path_empty_d, F_file_at_automount_no_d, or F_file_at_symlink_follow_no_d.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if either both uid and gid are -1 or path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_access_group\fP (with error bit) if the current user does not have access to assign the specified group.
+.br
+\fBF_access_owner\fP (with error bit) if the current user does not have access to assign the specified owner.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_directory_descriptor\fP (with error bit) when at_id is not a valid file descriptor (at_id must point to a directory).
+.br
+\fBF_directory_not\fP (with error bit) on invalid directory.
+.br
+\fBF_file_found_not\fP (with error bit) if file at path was not found.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_read_only\fP (with error bit) if file is read-only.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_seek.3 b/level_0/f_file/data/documentation/man/man3/f_file_seek.3
new file mode 100644 (file)
index 0000000..e8ef1cb
--- /dev/null
@@ -0,0 +1,54 @@
+.TH f_file_seek "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_seek
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_seek\fP(
+    \fBconst int    \fP\fIid\fP,
+    \fBconst int    \fP\fIwhence\fP,
+    \fBconst off_t  \fP\fIoffset\fP,
+    \fBoff_t *const \fP\fIseeked\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Given an open file descriptor, seek to a given location.
+.SH PARAMETERS
+.TP
+.B id
+The file descriptor.
+
+.TP
+.B whence
+One of: SEEK_SET, SEEK_CUR, SEEK_END, SEEK_DATA, SEEK_HOLE.
+
+.TP
+.B offset
+The offset to use, based off of whence.
+
+.TP
+.B seeked
+This gets update to represent the total amount seeked. To be compared against offset.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_bound_not\fP (with error bit) if SEEK_DATA or SEEK_HOLE is specified as whence and offset is beyond the end of file.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_pipe\fP (with error bit) if file descriptor represents a pipe, socket, or FIFO.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow for offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_size.3 b/level_0/f_file/data/documentation/man/man3/f_file_size.3
new file mode 100644 (file)
index 0000000..617f8e1
--- /dev/null
@@ -0,0 +1,53 @@
+.TH f_file_size "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_size
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_size\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst bool              \fP\fIdereference\fP,
+    \fBoff_t *const            \fP\fIsize\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Read the size of file.
+.SH PARAMETERS
+.TP
+.B path
+The path to the file.
+
+.TP
+.B dereference
+Set to TRUE to dereference symlinks (often is what is desired). Set to FALSE to operate on the symlink itself.
+
+.TP
+.B size
+This gets set to the size of the file.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) if access to the file was denied.
+.br
+\fBF_directory_not\fP (with error bit) on invalid directory.
+.br
+\fBF_file_found_not\fP (with error bit) if the file was not found.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_size_at.3 b/level_0/f_file/data/documentation/man/man3/f_file_size_at.3
new file mode 100644 (file)
index 0000000..2734211
--- /dev/null
@@ -0,0 +1,60 @@
+.TH f_file_size_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_size_at
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_size_at\fP(
+    \fBconst int               \fP\fIat_id\fP,
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst bool              \fP\fIdereference\fP,
+    \fBoff_t *const            \fP\fIsize\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Read the size of file.
+.SH PARAMETERS
+.TP
+.B at_id
+The parent directory, as an open directory file descriptor, in which path is relative to.
+
+.TP
+.B path
+The path to the file.
+
+.TP
+.B dereference
+Set to TRUE to dereference symlinks (often is what is desired). Set to FALSE to operate on the symlink itself.
+
+.TP
+.B size
+This gets set to the size of the file.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) if access to the file was denied.
+.br
+\fBF_directory_descriptor\fP (with error bit) when at_id is not a valid file descriptor (at_id must point to a directory).
+.br
+\fBF_directory_not\fP (with error bit) on invalid directory.
+.br
+\fBF_file_found_not\fP (with error bit) if the file was not found.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_size_by_id.3 b/level_0/f_file/data/documentation/man/man3/f_file_size_by_id.3
new file mode 100644 (file)
index 0000000..bc98d82
--- /dev/null
@@ -0,0 +1,52 @@
+.TH f_file_size_by_id "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_size_by_id
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_size_by_id\fP(
+    \fBconst int    \fP\fIid\fP,
+    \fBoff_t *const \fP\fIsize\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Read size of a file relative to the path represented by the file descriptor id.
+.SH PARAMETERS
+.TP
+.B id
+The file descriptor.
+
+.TP
+.B size
+This gets set to the size of the file.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) if access to the file was denied.
+.br
+\fBF_directory_not\fP (with error bit) on invalid directory.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_found_not\fP (with error bit) if the file was not found.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_stat.3 b/level_0/f_file/data/documentation/man/man3/f_file_stat.3
new file mode 100644 (file)
index 0000000..d163236
--- /dev/null
@@ -0,0 +1,53 @@
+.TH f_file_stat "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_stat
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_stat\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst bool              \fP\fIdereference\fP,
+    \fBstruct stat *const      \fP\fIstat_file\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Read statistics of a file.
+.SH PARAMETERS
+.TP
+.B path
+The path to the file.
+
+.TP
+.B dereference
+Set to TRUE to dereference symlinks (often is what is desired). Set to FALSE to operate on the symlink itself.
+
+.TP
+.B stat_file
+The statistics read.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) if access to the file was denied.
+.br
+\fBF_directory_not\fP (with error bit) on invalid directory.
+.br
+\fBF_file_found_not\fP (with error bit) if the file was not found.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_stat_at.3 b/level_0/f_file/data/documentation/man/man3/f_file_stat_at.3
new file mode 100644 (file)
index 0000000..b8a6bc7
--- /dev/null
@@ -0,0 +1,60 @@
+.TH f_file_stat_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_stat_at
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_stat_at\fP(
+    \fBconst int               \fP\fIat_id\fP,
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst int               \fP\fIflag\fP,
+    \fBstruct stat *const      \fP\fIstat_file\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Read statistics of a file relative to the path represented by the file descriptor id.
+.SH PARAMETERS
+.TP
+.B at_id
+The parent directory, as an open directory file descriptor, in which path is relative to.
+
+.TP
+.B path
+The path to the file.
+
+.TP
+.B flag
+Any valid flag, such as F_file_at_path_empty_d, F_file_at_automount_no_d, or F_file_at_symlink_follow_no_d.
+
+.TP
+.B stat_file
+The statistics read.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) if access to the file was denied.
+.br
+\fBF_directory_descriptor\fP (with error bit) when at_id is not a valid file descriptor (at_id must point to a directory).
+.br
+\fBF_directory_not\fP (with error bit) on invalid directory.
+.br
+\fBF_file_found_not\fP (with error bit) if the file was not found.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_stat_by_id.3 b/level_0/f_file/data/documentation/man/man3/f_file_stat_by_id.3
new file mode 100644 (file)
index 0000000..83ca09d
--- /dev/null
@@ -0,0 +1,48 @@
+.TH f_file_stat_by_id "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_stat_by_id
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_stat_by_id\fP(
+    \fBconst int          \fP\fIid\fP,
+    \fBstruct stat *const \fP\fIstat_file\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Read statistics of a file using a file descriptor id.
+.SH PARAMETERS
+.TP
+.B id
+The file descriptor.
+
+.TP
+.B stat_file
+The statistics read.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) if access to the file was denied.
+.br
+\fBF_directory_not\fP (with error bit) on invalid directory.
+.br
+\fBF_file_found_not\fP (with error bit) if the file was not found.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_stream_close.3 b/level_0/f_file/data/documentation/man/man3/f_file_stream_close.3
new file mode 100644 (file)
index 0000000..a7cdabe
--- /dev/null
@@ -0,0 +1,70 @@
+.TH f_file_stream_close "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_stream_close
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_stream_close\fP(
+    \fBconst bool      \fP\fIflush\fP,
+    \fBf_file_t *const \fP\fIfile\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Close an open file stream.
+.SH PARAMETERS
+.TP
+.B flush
+If TRUE, will explicitly flush all unwritten data in any buffers to the file. If FALSE, will not explicitly flush unwritten data.
+
+.TP
+.B file
+The file information. The file.stream is set to 0, on success or on failure. The file.id is set to 0, on success or on failure.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP is returned on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_block\fP (with error bit) if the action would block and non-blocking is set on the stream.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_deadlock\fP (with error bit) if operation would cause a deadlock.
+.br
+\fBF_file_close\fP (with error bit) if fclose() failed for any other reason.
+.br
+\fBF_file_descriptor\fP (with error bit) if file descriptor is invalid.
+.br
+\fBF_file_descriptor_max\fP (with error bit) if max file descriptors is reached.
+.br
+\fBF_file_overflow\fP (with error bit) if the write exceeds some implementation defined maximum file size.
+.br
+\fBF_file_synchronize\fP (with error bit) on flush failure.
+.br
+\fBF_file_type_not_directory\fP (with error bit) if
+.br
+\fBF_NOTIFY\fP was specified and file.id is not a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_lock\fP (with error bit) if failed to lock, such as lock table is full or too many open segments.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe_not\fP (with error bit) if the stream is a pipe or a socket but the pipe or socket is already closed.
+.br
+\fBF_space_not\fP (with error bit) if file system is out of space (or file system quota is reached).
+.br
+\fBF_socket_not\fP (with error bit) if the datagram socket in which a peer has not been set (for socket related streams).
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_stream_open.3 b/level_0/f_file/data/documentation/man/man3/f_file_stream_open.3
new file mode 100644 (file)
index 0000000..becc772
--- /dev/null
@@ -0,0 +1,83 @@
+.TH f_file_stream_open "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_stream_open
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_stream_open\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst f_string_static_t \fP\fImode\fP,
+    \fBf_file_t *const         \fP\fIfile\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Open a file stream.
+.PP
+The file descriptor is retrieved on success, if necessary and able.
+.PP
+If the file stream is open, it is closed before re-opening.
+.PP
+This is often used for changing the file pointed to by standard streams such as stdout.
+.SH PARAMETERS
+.TP
+.B path
+The file path.
+
+.TP
+.B mode
+The file modes do use when opening, as an fopen() file mode string. Set mode.used to 0 to determine mode from file.flags (falling back to read only as a failsafe). If neither truncate nor append are specified in write only mode, then the failsafe is to append.
+
+.TP
+.B file
+The file information. The file.stream is updated if necessary. The file.id is updated with the file descriptor, if necessary and able.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP is returned on success.
+.br
+\fBF_data_not\fP if both path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_busy\fP (with error bit) if file system is too busy to perform write.
+.br
+\fBF_file_descriptor\fP (with error bit) if unable to load the file descriptor.
+.br
+\fBF_file_found_not\fP (with error bit) if the file was not found.
+.br
+\fBF_file_open_max\fP (with error bit) when system-wide max open files is reached.
+.br
+\fBF_file_type_not_directory\fP (with error bit) if
+.br
+\fBF_NOTIFY\fP was specified and file.id is not a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name is too long.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for making changes.
+.br
+\fBF_read_only\fP (with error bit) if file is read-only.
+.br
+\fBF_supported_not\fP (with error bit) fo unsupported file types.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_stream_open_descriptor.3 b/level_0/f_file/data/documentation/man/man3/f_file_stream_open_descriptor.3
new file mode 100644 (file)
index 0000000..cb88269
--- /dev/null
@@ -0,0 +1,64 @@
+.TH f_file_stream_open_descriptor "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_stream_open_descriptor
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_stream_open_descriptor\fP(
+    \fBconst f_string_static_t \fP\fImode\fP,
+    \fBf_file_t *const         \fP\fIfile\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Open a file stream from a file descriptor.
+.SH PARAMETERS
+.TP
+.B mode
+The file modes do use when opening. Set mode.used to 0 to determine mode from file.flags (falling back to read only as a failsafe). If neither truncate nor append are not specified in write only mode, then the failsafe is to append. This should match the modes used to open the file descriptor as it relates to the stream modes.
+
+.TP
+.B file
+The file with a valid file descriptor (file.id). THe file stream (file.stream) is updated on success, but may be set to NULL on error.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP is returned on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_block\fP (with error bit) if the action would block and non-blocking is set on the stream.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_deadlock\fP (with error bit) if operation would cause a deadlock.
+.br
+\fBF_file_descriptor\fP (with error bit) if file descriptor is invalid.
+.br
+\fBF_file_descriptor_max\fP (with error bit) if max file descriptors is reached.
+.br
+\fBF_file_overflow\fP (with error bit) if the write exceeds some implementation defined maximum file size.
+.br
+\fBF_file_type_not_directory\fP (with error bit) if
+.br
+\fBF_NOTIFY\fP was specified and file.id is not a directory.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_lock\fP (with error bit) if failed to lock, such as lock table is full or too many open segments.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe_not\fP (with error bit) if the stream is a pipe or a socket but the pipe or socket is already closed.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for making changes.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_space_not\fP (with error bit) if the file system is out of space (or file system quota is reached).
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_stream_read.3 b/level_0/f_file/data/documentation/man/man3/f_file_stream_read.3
new file mode 100644 (file)
index 0000000..c8a14a9
--- /dev/null
@@ -0,0 +1,52 @@
+.TH f_file_stream_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_stream_read
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_stream_read\fP(
+    \fBconst f_file_t            \fP\fIfile\fP,
+    \fBf_string_dynamic_t *const \fP\fIbuffer\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Read until EOF is reached.
+.PP
+To check how much was read into the buffer, record buffer->used before execution and compare to buffer->used after execution.
+.SH PARAMETERS
+.TP
+.B file
+The file to read. The file must already be open. The file.size_read represents the amount to process at a given time.
+
+.TP
+.B buffer
+The buffer the file is being read into. The contents of the file is appended into this buffer.
+
+.SH RETURN VALUE
+.PP
+\fBF_none_eof\fP on success and EOF was reached.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the read would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_error\fP (with error bit) if the file is already in the error state at the start of this function.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_stream_read_block.3 b/level_0/f_file/data/documentation/man/man3/f_file_stream_read_block.3
new file mode 100644 (file)
index 0000000..0286912
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_file_stream_read_block "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_stream_read_block
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_stream_read_block\fP(
+    \fBconst f_file_t            \fP\fIfile\fP,
+    \fBf_string_dynamic_t *const \fP\fIbuffer\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Read until a single block is filled or EOF is reached.
+.PP
+To determine how much was read into the buffer, record buffer->used before execution and compare to buffer->used after execution.
+.SH PARAMETERS
+.TP
+.B file
+The file to read. The file must already be open. The file.size_read represents the amount to process at a given time.
+
+.TP
+.B buffer
+The buffer the file is being read into. The contents of the file is appended into this buffer.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eof\fP on success and EOF was reached.
+.br
+\fBF_error\fP (with error bit) if the file is already in the error state at the start of this function.
+.br
+\fBF_file_closed\fP (with error bit) if the file is closed.
+.br
+\fBF_file_read\fP (with error bit) on file read error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_stream_read_until.3 b/level_0/f_file/data/documentation/man/man3/f_file_stream_read_until.3
new file mode 100644 (file)
index 0000000..c8b26be
--- /dev/null
@@ -0,0 +1,53 @@
+.TH f_file_stream_read_until "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_stream_read_until
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_stream_read_until\fP(
+    \fBconst f_file_t            \fP\fIfile\fP,
+    \fBconst f_array_length_t    \fP\fItotal\fP,
+    \fBf_string_dynamic_t *const \fP\fIbuffer\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Read until a given number or EOF is reached, storing it in the buffer.
+.PP
+To check how much was read into the buffer, record buffer->used before execution and compare to buffer->used after execution.
+.PP
+This is different from simply using the file.size_read. The file.size_read represents the amount to process at a given time. The total represents the maximum number of file.size_read to process. For example, if file.size_read is 16 and total is 128, then this function would need to be called 8 times until total is reached.
+.SH PARAMETERS
+.TP
+.B file
+The file to read. The file must already be open. The file.size_read represents the amount to process at a given time.
+
+.TP
+.B total
+The total bytes to read, unless EOF is reached first.
+
+.TP
+.B buffer
+The buffer the file is being read into.
+
+.SH RETURN VALUE
+.PP
+\fBF_none_eof\fP on success and EOF was reached.
+.br
+\fBF_none_stop\fP on success and total was reached.
+.br
+\fBF_error\fP (with error bit) if the file is already in the error state at the start of this function.
+.br
+\fBF_file_closed\fP (with error bit) if the file is closed.
+.br
+\fBF_file_read\fP (with error bit) on file read error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_stream_reopen.3 b/level_0/f_file/data/documentation/man/man3/f_file_stream_reopen.3
new file mode 100644 (file)
index 0000000..dfd5179
--- /dev/null
@@ -0,0 +1,81 @@
+.TH f_file_stream_reopen "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_stream_reopen
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_stream_reopen\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst f_string_static_t \fP\fImode\fP,
+    \fBf_file_t *const         \fP\fIfile\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Re-open a file stream.
+.PP
+This allows for re-using an existing file stream and possibly file-descriptor.
+.PP
+The file descriptor is retrieved on success, if necessary and able.
+.SH PARAMETERS
+.TP
+.B path
+The file path. Set path.used to 0 with a non-empty mode (mode.used > 0) to only change the mode of the existing stream.
+
+.TP
+.B mode
+The file modes do use when opening. Set to 0 to determine mode from file.flags (falling back to read only as a failsafe). If neither truncate nor append are not specified in write only mode, then the failsafe is to append.
+
+.TP
+.B file
+The file information. The file.stream is updated, if necessary. The file.id is updated with the file descriptor, if necessary and able.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP is returned on success.
+.br
+\fBF_data_not\fP if both path.used and mode.used are 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_busy\fP (with error bit) if file system is too busy to perform write.
+.br
+\fBF_file_descriptor\fP (with error bit) if unable to load the file descriptor.
+.br
+\fBF_file_found_not\fP (with error bit) if the file was not found.
+.br
+\fBF_file_open_max\fP (with error bit) when system-wide max open files is reached.
+.br
+\fBF_file_type_not_directory\fP (with error bit) if
+.br
+\fBF_NOTIFY\fP was specified and file.id is not a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name is too long.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for making changes.
+.br
+\fBF_read_only\fP (with error bit) if file is read-only.
+.br
+\fBF_supported_not\fP (with error bit) fo unsupported file types.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_stream_write.3 b/level_0/f_file/data/documentation/man/man3/f_file_stream_write.3
new file mode 100644 (file)
index 0000000..0d0aa86
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_file_stream_write "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_stream_write
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_stream_write\fP(
+    \fBconst f_file_t          \fP\fIfile\fP,
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_array_length_t *const \fP\fIwritten\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write until entire buffer is written.
+.SH PARAMETERS
+.TP
+.B file
+The file to write to. The file must already be open. The file.size_write represents the amount to process at a given time.
+
+.TP
+.B buffer
+The buffer to write to the file.
+
+.TP
+.B written
+The total bytes written. Set pointer to 0 to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eof\fP when the file stream is at the end of the file.
+.br
+\fBF_none_stop\fP on success but no data was written (written == 0) (not an error and often happens if file type is not a regular file).
+.br
+\fBF_data_not\fP on success but buffer.used is 0.
+.br
+\fBF_file_write\fP (with error bit) on error during file write.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_file_write\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_stream_write_block.3 b/level_0/f_file/data/documentation/man/man3/f_file_stream_write_block.3
new file mode 100644 (file)
index 0000000..eaf4c7d
--- /dev/null
@@ -0,0 +1,51 @@
+.TH f_file_stream_write_block "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_stream_write_block
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_stream_write_block\fP(
+    \fBconst f_file_t          \fP\fIfile\fP,
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_array_length_t *const \fP\fIwritten\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write until a single block is filled or entire buffer is written.
+.PP
+To check how much was write into the buffer, record buffer->used before execution and compare to buffer->used after execution.
+.SH PARAMETERS
+.TP
+.B file
+The file to write to. The file must already be open. The file.size_write represents the amount to process at a given time.
+
+.TP
+.B buffer
+The buffer to write to the file.
+
+.TP
+.B written
+The total bytes written. Set pointer to 0 to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eof\fP when the file stream is at the end of the file.
+.br
+\fBF_none_stop\fP on success but no data was written (written == 0) (not an error and often happens if file type is not a regular file).
+.br
+\fBF_data_not\fP on success but buffer.used is 0.
+.br
+\fBF_file_write\fP (with error bit) on error during file write.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_file_write\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_stream_write_range.3 b/level_0/f_file/data/documentation/man/man3/f_file_stream_write_range.3
new file mode 100644 (file)
index 0000000..0abec46
--- /dev/null
@@ -0,0 +1,50 @@
+.TH f_file_stream_write_range "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_stream_write_range
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_stream_write_range\fP(
+    \fBconst f_file_t          \fP\fIfile\fP,
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBf_array_length_t *const \fP\fIwritten\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write a given range within the buffer.
+.SH PARAMETERS
+.TP
+.B file
+The file to write to. The file must already be open. The file.size_write represents the amount to process at a given time.
+
+.TP
+.B buffer
+The buffer to write to the file.
+
+.TP
+.B range
+An inclusive start an stop range within the buffer to read.
+
+.TP
+.B written
+The total bytes written. Set pointer to 0 to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_stop\fP on success but no data was written (written == 0) (not an error and often happens if file type is not a regular file).
+.br
+\fBF_none_eos\fP on success but range.stop exceeded buffer.used (only wrote up to buffer.used).
+.br
+\fBF_file_write\fP (with error bit) on error during file write.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_stream_write_until.3 b/level_0/f_file/data/documentation/man/man3/f_file_stream_write_until.3
new file mode 100644 (file)
index 0000000..31d21fc
--- /dev/null
@@ -0,0 +1,56 @@
+.TH f_file_stream_write_until "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_stream_write_until
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_stream_write_until\fP(
+    \fBconst f_file_t          \fP\fIfile\fP,
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_length_t  \fP\fItotal\fP,
+    \fBf_array_length_t *const \fP\fIwritten\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write until a given number or entire buffer is written.
+.SH PARAMETERS
+.TP
+.B file
+The file to write to. The file must already be open. The file.size_write represents the amount to process at a given time.
+
+.TP
+.B buffer
+The buffer to write to the file.
+
+.TP
+.B total
+The total bytes to write, unless end of buffer is reached first.
+
+.TP
+.B written
+The total bytes written. Set pointer to 0 to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eof\fP when the file stream is at the end of the file.
+.br
+\fBF_none_eos\fP on success but range.stop exceeded buffer.used (only wrote up to buffer.used).
+.br
+\fBF_none_stop\fP on success but no data was written (written == 0) (not an error and often happens if file type is not a regular file).
+.br
+\fBF_data_not\fP on success but either buffer.used or total is 0.
+.br
+\fBF_file_write\fP (with error bit) on error during file write.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_file_write\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_touch.3 b/level_0/f_file/data/documentation/man/man3/f_file_touch.3
new file mode 100644 (file)
index 0000000..45ef7ef
--- /dev/null
@@ -0,0 +1,77 @@
+.TH f_file_touch "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_touch
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_touch\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst mode_t            \fP\fImode\fP,
+    \fBconst bool              \fP\fIdereference\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Update the files access and modification timestamp, creating the file if it does not already exist.
+.PP
+When the file is created, it is created as a regular file.
+.SH PARAMETERS
+.TP
+.B path
+The path file name.
+
+.TP
+.B mode
+The file mode to use when (regular) file is created.
+
+.TP
+.B dereference
+Set to TRUE to dereference symlinks (often is what is desired). Set to FALSE to operate on the symlink itself.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_busy\fP (with error bit) if file system is too busy to perform write.
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_directory_descriptor\fP (with error bit) for bad directory descriptor for at_id.
+.br
+\fBF_file_found\fP (with error bit) if a file aleady exists at the path.
+.br
+\fBF_file_open_max\fP (with error bit) when system-wide max open files is reached.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_filesystem_quota_reached\fP (with error bit) quota reached of file system is out of space.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for creating or linking.
+.br
+\fBF_read_only\fP (with error bit) if file system is read-only.
+.br
+\fBF_search\fP (with error bit) if search permission is denied for one of the paths to the file.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_touch_at.3 b/level_0/f_file/data/documentation/man/man3/f_file_touch_at.3
new file mode 100644 (file)
index 0000000..1d9ebaf
--- /dev/null
@@ -0,0 +1,82 @@
+.TH f_file_touch_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_touch_at
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_touch_at\fP(
+    \fBconst int               \fP\fIat_id\fP,
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst mode_t            \fP\fImode\fP,
+    \fBconst int               \fP\fIflag\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Update the files access and modification timestamp, creating the file if it does not already exist.
+.PP
+When the file is created, it is created as a regular file.
+.SH PARAMETERS
+.TP
+.B at_id
+The parent directory, as an open directory file descriptor, in which path is relative to.
+
+.TP
+.B path
+The path file name.
+
+.TP
+.B mode
+The file mode to use when (regular) file is created.
+
+.TP
+.B flag
+Any valid flag, such as F_file_at_path_empty_d, F_file_at_automount_no_d, or F_file_at_symlink_follow_no_d.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_busy\fP (with error bit) if file system is too busy to perform write.
+.br
+\fBF_directory_descriptor\fP (with error bit) when at_id is not a valid file descriptor (at_id must point to a directory).
+.br
+\fBF_directory_not\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_file_found\fP (with error bit) if a file aleady exists at the path (when calling utimensat()).
+.br
+\fBF_file_open_max\fP (with error bit) when system-wide max open files is reached.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_filesystem_quota_reached\fP (with error bit) quota reached of file system is out of space.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for creating or linking.
+.br
+\fBF_read_only\fP (with error bit) if file system is read-only.
+.br
+\fBF_search\fP (with error bit) if search permission is denied for one of the paths to the file.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_type.3 b/level_0/f_file/data/documentation/man/man3/f_file_type.3
new file mode 100644 (file)
index 0000000..ab0e5d0
--- /dev/null
@@ -0,0 +1,55 @@
+.TH f_file_type "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_type
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_type\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst bool              \fP\fIdereference\fP,
+    \fBint *const              \fP\fItype\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the file type for the file at the given path.
+.PP
+This does not require access on the file itself. This only requires access via the parent directories in the path.
+.SH PARAMETERS
+.TP
+.B path
+The path file name.
+
+.TP
+.B dereference
+Set to TRUE to dereference symlinks (often is what is desired). Set to FALSE to operate on the symlink itself.
+
+.TP
+.B type
+The type of the file.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP if path was found and and the type was loaded in the type parameter.
+.br
+\fBF_file_found_not\fP if the path was not found.
+.br
+\fBF_access_denied\fP (with error bit) if access to the file was denied.
+.br
+\fBF_directory_not\fP (with error bit) on invalid directory.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_type_at.3 b/level_0/f_file/data/documentation/man/man3/f_file_type_at.3
new file mode 100644 (file)
index 0000000..aef9f4d
--- /dev/null
@@ -0,0 +1,60 @@
+.TH f_file_type_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_type_at
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_type_at\fP(
+    \fBconst int               \fP\fIat_id\fP,
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst int               \fP\fIflag\fP,
+    \fBint *const              \fP\fItype\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the file type for the file at the given path within the parent directory.
+.SH PARAMETERS
+.TP
+.B at_id
+The parent directory, as an open directory file descriptor, in which path is relative to.
+
+.TP
+.B path
+The path file name.
+
+.TP
+.B flag
+Any valid flag, such as F_file_at_path_empty_d, F_file_at_automount_no_d, or F_file_at_symlink_follow_no_d.
+
+.TP
+.B type
+The type of the file.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP if path was found and and the type was loaded in the type parameter.
+.br
+\fBF_file_found_not\fP if the path was not found.
+.br
+\fBF_access_denied\fP (with error bit) if access to the file was denied.
+.br
+\fBF_directory_descriptor\fP (with error bit) when at_id is not a valid file descriptor (at_id must point to a directory).
+.br
+\fBF_directory_not\fP (with error bit) on invalid directory.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_number_overflow\fP (with error bit) on overflow error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_umask_get.3 b/level_0/f_file/data/documentation/man/man3/f_file_umask_get.3
new file mode 100644 (file)
index 0000000..07c8dbe
--- /dev/null
@@ -0,0 +1,31 @@
+.TH f_file_umask_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_umask_get
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_umask_get\fP(
+    \fBmode_t *const \fP\fImask\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the umask.
+.PP
+This sets the umask after getting the umask. This is necessary because the umask() is poorly designed such that it requires changing the umask to get the current umask. The umask() function gets called twice because of this.
+.SH PARAMETERS
+.TP
+.B mask
+The umask value. (The name "mask" is used avoid a naming conflict with the umask() function.)
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_umask_set.3 b/level_0/f_file/data/documentation/man/man3/f_file_umask_set.3
new file mode 100644 (file)
index 0000000..cba3776
--- /dev/null
@@ -0,0 +1,27 @@
+.TH f_file_umask_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_umask_set
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_umask_set\fP(
+    \fBconst mode_t \fP\fImask\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the umask.
+.SH PARAMETERS
+.TP
+.B mask
+The umask value to assigned. (The name "mask" is used avoid a naming conflict with the umask() function.)
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_write.3 b/level_0/f_file/data/documentation/man/man3/f_file_write.3
new file mode 100644 (file)
index 0000000..9bbdddb
--- /dev/null
@@ -0,0 +1,57 @@
+.TH f_file_write "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_write
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_write\fP(
+    \fBconst f_file_t          \fP\fIfile\fP,
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_array_length_t *const \fP\fIwritten\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write until entire buffer is written.
+.SH PARAMETERS
+.TP
+.B file
+The file to write to. The file must already be open.
+
+.TP
+.B buffer
+The buffer to write to the file.
+
+.TP
+.B written
+The total bytes written. Set pointer to 0 to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_stop\fP on success but no data was written (written == 0) (not an error and often happens if file type is not a regular file).
+.br
+\fBF_data_not\fP if buffer.used is 0.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_write_block.3 b/level_0/f_file/data/documentation/man/man3/f_file_write_block.3
new file mode 100644 (file)
index 0000000..9d6f325
--- /dev/null
@@ -0,0 +1,59 @@
+.TH f_file_write_block "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_write_block
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_write_block\fP(
+    \fBconst f_file_t          \fP\fIfile\fP,
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_array_length_t *const \fP\fIwritten\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write until a single block is filled or entire buffer is written.
+.PP
+To check how much was write into the buffer, record buffer->used before execution and compare to buffer->used after execution.
+.SH PARAMETERS
+.TP
+.B file
+The file to write to. The file must already be open.
+
+.TP
+.B buffer
+The buffer to write to the file.
+
+.TP
+.B written
+The total bytes written. Set pointer to 0 to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_stop\fP on success but no data was written (written == 0) (not an error and often happens if file type is not a regular file).
+.br
+\fBF_data_not\fP if buffer.used is 0.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_write_range.3 b/level_0/f_file/data/documentation/man/man3/f_file_write_range.3
new file mode 100644 (file)
index 0000000..4b15b39
--- /dev/null
@@ -0,0 +1,62 @@
+.TH f_file_write_range "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_write_range
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_write_range\fP(
+    \fBconst f_file_t          \fP\fIfile\fP,
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBf_array_length_t *const \fP\fIwritten\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write a given range within the buffer.
+.SH PARAMETERS
+.TP
+.B file
+The file to write to. The file must already be open.
+
+.TP
+.B buffer
+The buffer to write to the file.
+
+.TP
+.B range
+An inclusive start an stop range within the buffer to read.
+
+.TP
+.B written
+The total bytes written. Set pointer to 0 to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_stop\fP on success but no data was written (written == 0) (not an error and often happens if file type is not a regular file).
+.br
+\fBF_none_eos\fP on success but range.stop exceeded buffer.used (only wrote up to buffer.used).
+.br
+\fBF_data_not\fP if buffer.used is 0 or range.start > range.stop.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_file/data/documentation/man/man3/f_file_write_until.3 b/level_0/f_file/data/documentation/man/man3/f_file_write_until.3
new file mode 100644 (file)
index 0000000..59bb7b1
--- /dev/null
@@ -0,0 +1,64 @@
+.TH f_file_write_until "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_file_write_until
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t f_file_write_until\fP(
+    \fBconst f_file_t          \fP\fIfile\fP,
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_length_t  \fP\fItotal\fP,
+    \fBf_array_length_t *const \fP\fIwritten\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write until a given number or entire buffer is written.
+.SH PARAMETERS
+.TP
+.B file
+The file to write to. The file must already be open.
+
+.TP
+.B buffer
+The buffer to write to the file.
+
+.TP
+.B total
+The total bytes to write, unless end of buffer is reached first.
+
+.TP
+.B written
+The total bytes written. Set pointer to 0 to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_stop\fP on success but no data was written (written == 0) (not an error and often happens if file type is not a regular file).
+.br
+\fBF_none_eos\fP on success but range.stop exceeded buffer.used (only wrote up to buffer.used).
+.br
+\fBF_data_not\fP if buffer.used is 0 or total is 0.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index 3e4c2b83e0c899e04e6c983999eb36b26b6b47a4..ef7a7c6b9740a573d6bfbaa694786f6c205da7d9 100644 (file)
@@ -35,6 +35,8 @@ build_sources_library fss.c private-fss.c fss/common.c fss/named.c fss/nest.c fs
 
 build_sources_headers fss.h fss/comment.h fss/common.h fss/delimit.h fss/named.h fss/nest.h fss/quote.h fss/set.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_apply_delimit.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_apply_delimit.3
new file mode 100644 (file)
index 0000000..52330b1
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_fss_apply_delimit "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_apply_delimit
+.SH SYNOPSIS
+.nf
+.B #include <fss.h>
+.sp
+\fBf_status_t f_fss_apply_delimit\fP(
+    \fBf_state_t                \fP\fIstate\fP,
+    \fBconst f_fss_delimits_t   \fP\fIdelimits\fP,
+    \fBf_string_static_t *const \fP\fIbuffer\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+A string that is analogous to f_string_dynamic_t but intended for static-only uses.
+.PP
+The f_string_static_t type should never be directly allocated or deallocated.
+.PP
+A special macro_f_string_static_t_initialize() is provided for the special purpose of easily initialize a static string. A special macro_f_string_static_t_initialize2() is provided for the special purpose of easily initialize a static string with an identical used and size.
+.PP
+string: The string. size: Total amount of space available. used: Total number of space used.
+.sp
+.RS
+.nf
+\fB
+struct f_string_static_t {
+  f_string_t       \fIstring\fP;
+  f_array_length_t \fIsize\fP;
+  f_array_length_t \fIused\fP;
+};
+\fP
+.fi
+.RE
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but buffer.used is 0.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_apply_delimit_range.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_apply_delimit_range.3
new file mode 100644 (file)
index 0000000..b905b3a
--- /dev/null
@@ -0,0 +1,48 @@
+.TH f_fss_apply_delimit_range "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_apply_delimit_range
+.SH SYNOPSIS
+.nf
+.B #include <fss.h>
+.sp
+\fBf_status_t f_fss_apply_delimit_range\fP(
+    \fBf_state_t                \fP\fIstate\fP,
+    \fBconst f_fss_delimits_t   \fP\fIdelimits\fP,
+    \fBconst f_string_range_t   \fP\fIrange\fP,
+    \fBf_string_static_t *const \fP\fIbuffer\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Replace all 1-byte character locations specified by the delimits within the given buffer by a delimit placeholder if within the given range.
+.PP
+If the delimits are found to be (inclusively) within the range specified by range, then those delimits are applied.
+.SH PARAMETERS
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations.
+
+.TP
+.B delimits
+An array of locations containing the delimits to apply within the buffer.
+
+.TP
+.B range
+The range in which to restrict which delimits to apply.
+
+.TP
+.B buffer
+The string to process.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but buffer.used is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_count_lines.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_count_lines.3
new file mode 100644 (file)
index 0000000..aae6eb3
--- /dev/null
@@ -0,0 +1,50 @@
+.TH f_fss_count_lines "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_count_lines
+.SH SYNOPSIS
+.nf
+.B #include <fss.h>
+.sp
+\fBf_status_t f_fss_count_lines\fP(
+    \fBf_state_t               \fP\fIstate\fP,
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_length_t  \fP\fIbefore\fP,
+    \fBf_array_length_t *const \fP\fIline\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Count the number of new lines from the buffer before the given location.
+.PP
+Use this to calculate where a given range exists in relation to a line.
+.PP
+This does not initialize line, instead it only performs addition to line.
+.SH PARAMETERS
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations.
+
+.TP
+.B buffer
+The string to process.
+
+.TP
+.B before
+The position in the buffer where to start counting before.
+
+.TP
+.B line
+The total lines found leading up to but not including before. This value is not reset and only additions are performed. When F_data_not is returned, this value is not altered.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but buffer.used is 0 (line is set to 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_count_lines_range.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_count_lines_range.3
new file mode 100644 (file)
index 0000000..fc5e981
--- /dev/null
@@ -0,0 +1,50 @@
+.TH f_fss_count_lines_range "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_count_lines_range
+.SH SYNOPSIS
+.nf
+.B #include <fss.h>
+.sp
+\fBf_status_t f_fss_count_lines_range\fP(
+    \fBf_state_t               \fP\fIstate\fP,
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBf_array_length_t *const \fP\fIline\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Count the number of new lines from the given range in the buffer before the given location.
+.PP
+Use this to calculate where a given range exists in relation to a line.
+.PP
+This does not initialize line, instead it only performs addition to line.
+.SH PARAMETERS
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations.
+
+.TP
+.B buffer
+The string to process.
+
+.TP
+.B range
+The range within the buffer to process.
+
+.TP
+.B line
+The total lines found leading up to but not including before. This value is not reset and only additions are performed. When F_data_not is returned, this value is not altered.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but the range.start is greater than buffer.used or buffer.used is 0 (line is set to 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_fail_utf.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_fail_utf.3
new file mode 100644 (file)
index 0000000..3ba41fc
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_fss_fail_utf "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_fail_utf
+.SH SYNOPSIS
+.nf
+.B #include <fss.h>
+.sp
+\fBf_status_t f_fss_fail_utf\fP(
+    \fBf_state_t        \fP\fIstate\fP,
+    \fBconst f_status_t \fP\fIstatus\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Using the state, check that the status should return an error or not on invalid UTF-8.
+.PP
+When f_fss_state_flag_utf_fail_on_valid_not_e is set, UTF-8 failures are returned as is. When f_fss_state_flag_utf_fail_on_valid_not_e is unset, UTF-8 failures are returned with the error bit removed.
+.SH PARAMETERS
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations.
+
+.TP
+.B status
+F_utf_not
+
+
+.SH RETURN VALUE
+.PP
+Status is either directly passed through or the error bit is removed depending on state.flag.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_fail_utf_to_false.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_fail_utf_to_false.3
new file mode 100644 (file)
index 0000000..c04e610
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_fss_fail_utf_to_false "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_fail_utf_to_false
+.SH SYNOPSIS
+.nf
+.B #include <fss.h>
+.sp
+\fBf_status_t f_fss_fail_utf_to_false\fP(
+    \fBf_state_t        \fP\fIstate\fP,
+    \fBconst f_status_t \fP\fIstatus\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Using the state, check that the status should return an error or not on invalid UTF-8.
+.PP
+When f_fss_state_flag_utf_fail_on_valid_not_e is set, UTF-8 failures are returned as is. When f_fss_state_flag_utf_fail_on_valid_not_e is unset, UTF-8 failures are replaced with F_false.
+.SH PARAMETERS
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations.
+
+.TP
+.B status
+F_utf_not
+
+
+.SH RETURN VALUE
+.PP
+Status is either directly passed through or F_false is returned depending on state.flag.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_is_combining.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_is_combining.3
new file mode 100644 (file)
index 0000000..722faab
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_fss_is_combining "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_is_combining
+.SH SYNOPSIS
+.nf
+.B #include <fss.h>
+.sp
+\fBf_status_t f_fss_is_combining\fP(
+    \fBf_state_t               \fP\fIstate\fP,
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify whether or not a character in the buffer is a combining (ASCII or UTF-8) character.
+.PP
+This only checks if the given character is a combining character and does not check what this combines into.
+.PP
+The combining characters combine from right to left. It is recommended to use this after testing for other characters, such as f_fss_is_space() or f_fss_is_graph(). A combining character can follow any character, even if it is something like a control character. This is unclear behavior so a simple strategy is to assume that a combining character results in a graph for anything except a non-combining zero-width character. U+0020 followed by U+0301 would result in the combination of the two being considered a graph rather than a space. Given that NULL characters are ignored by the general FSS standard, combining characters are not considered to combine into NULL.
+.SH PARAMETERS
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations.
+
+.TP
+.B buffer
+The string to process.
+
+.TP
+.B range
+The character at the start position will be checked against the graph.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if the character in the buffer is a combining character.
+.br
+\fBF_false\fP if the character in the buffer is not a combining character.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_is_graph.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_is_graph.3
new file mode 100644 (file)
index 0000000..07c7a2e
--- /dev/null
@@ -0,0 +1,43 @@
+.TH f_fss_is_graph "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_is_graph
+.SH SYNOPSIS
+.nf
+.B #include <fss.h>
+.sp
+\fBf_status_t f_fss_is_graph\fP(
+    \fBf_state_t               \fP\fIstate\fP,
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify whether or not a character in the buffer is a graph (ASCII or UTF-8) character.
+.PP
+Errors (with error bit) from: f_utf_is_graph().
+.SH PARAMETERS
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations.
+
+.TP
+.B buffer
+The string to process.
+
+.TP
+.B range
+The character at the start position will be checked against the graph.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if the character in the buffer is a graph character.
+.br
+\fBF_false\fP if the character in the buffer is not a graph character.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_is_space.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_is_space.3
new file mode 100644 (file)
index 0000000..1370579
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_fss_is_space "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_is_space
+.SH SYNOPSIS
+.nf
+.B #include <fss.h>
+.sp
+\fBf_status_t f_fss_is_space\fP(
+    \fBf_state_t               \fP\fIstate\fP,
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify whether or not a character in the buffer is a non-zero-width whitespace or non-zero-width control (ASCII or UTF-8) character.
+.SH PARAMETERS
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations.
+
+.TP
+.B buffer
+The string to process.
+
+.TP
+.B range
+The character at the start position will be checked against the graph.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if the character in the buffer is a space character.
+.br
+\fBF_false\fP if the character in the buffer is not a space character.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_utf_is_control().
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.br
+Errors (with error bit) from: f_utf_is_zero_width().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_is_zero_width.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_is_zero_width.3
new file mode 100644 (file)
index 0000000..a4fabac
--- /dev/null
@@ -0,0 +1,45 @@
+.TH f_fss_is_zero_width "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_is_zero_width
+.SH SYNOPSIS
+.nf
+.B #include <fss.h>
+.sp
+\fBf_status_t f_fss_is_zero_width\fP(
+    \fBf_state_t               \fP\fIstate\fP,
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify whether or not a character in the buffer is a zero-width (ASCII or UTF-8) character.
+.PP
+The NULL character (U+0000) is a zero-width character.
+.SH PARAMETERS
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations.
+
+.TP
+.B buffer
+The string to process.
+
+.TP
+.B range
+The character at the start position will be checked against the graph.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if the character in the buffer is a zero-width character.
+.br
+\fBF_false\fP if the character in the buffer is not a zero-width character.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_utf_is_zero_width().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_items_adjust.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_items_adjust.3
new file mode 100644 (file)
index 0000000..5431d93
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_fss_items_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_items_adjust
+.SH SYNOPSIS
+.nf
+.B #include <nest.h>
+.sp
+\fBf_status_t f_fss_items_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_fss_items_t *const   \fP\fIitems\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the nest array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B items
+The items array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_items_decimate_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_items_decimate_by.3
new file mode 100644 (file)
index 0000000..72f027b
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_fss_items_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_items_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <nest.h>
+.sp
+\fBf_status_t f_fss_items_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fss_items_t *const   \fP\fIitems\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the nest array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B items
+The items array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_items_decrease_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_items_decrease_by.3
new file mode 100644 (file)
index 0000000..36c8c52
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_fss_items_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_items_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <nest.h>
+.sp
+\fBf_status_t f_fss_items_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fss_items_t *const   \fP\fIitems\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the nest array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B items
+The items array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_items_increase.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_items_increase.3
new file mode 100644 (file)
index 0000000..5cc1766
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_fss_items_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_items_increase
+.SH SYNOPSIS
+.nf
+.B #include <nest.h>
+.sp
+\fBf_status_t f_fss_items_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_fss_items_t *const   \fP\fIitems\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the items array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B items
+The items array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_items_increase_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_items_increase_by.3
new file mode 100644 (file)
index 0000000..eca3f82
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_fss_items_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_items_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <nest.h>
+.sp
+\fBf_status_t f_fss_items_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fss_items_t *const   \fP\fIitems\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the items array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B items
+The items array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_items_resize.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_items_resize.3
new file mode 100644 (file)
index 0000000..de0f272
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_fss_items_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_items_resize
+.SH SYNOPSIS
+.nf
+.B #include <nest.h>
+.sp
+\fBf_status_t f_fss_items_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_fss_items_t *const   \fP\fIitems\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the items array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B items
+The items array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_named_adjust.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_named_adjust.3
new file mode 100644 (file)
index 0000000..57283a9
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_fss_named_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_named_adjust
+.SH SYNOPSIS
+.nf
+.B #include <named.h>
+.sp
+\fBf_status_t f_fss_named_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_fss_named_t *const   \fP\fInamed\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize all parts of the named structure using the same length.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B named
+The named structure to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_named_decimate_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_named_decimate_by.3
new file mode 100644 (file)
index 0000000..cfbde0b
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_fss_named_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_named_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <named.h>
+.sp
+\fBf_status_t f_fss_named_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fss_named_t *const   \fP\fInamed\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize all parts of the named structure to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B named
+The named array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_named_decrease_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_named_decrease_by.3
new file mode 100644 (file)
index 0000000..4502a02
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_fss_named_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_named_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <named.h>
+.sp
+\fBf_status_t f_fss_named_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fss_named_t *const   \fP\fInamed\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize all parts of the named structure to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B named
+The named array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_named_increase.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_named_increase.3
new file mode 100644 (file)
index 0000000..31944ba
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_fss_named_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_named_increase
+.SH SYNOPSIS
+.nf
+.B #include <named.h>
+.sp
+\fBf_status_t f_fss_named_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_fss_named_t *const   \fP\fInamed\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of all parts of the named structure, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B named
+The named array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_named_increase_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_named_increase_by.3
new file mode 100644 (file)
index 0000000..bf8d3a2
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_fss_named_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_named_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <named.h>
+.sp
+\fBf_status_t f_fss_named_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fss_named_t *const   \fP\fInamed\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize all parts of the named structure to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B named
+The named array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_named_resize.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_named_resize.3
new file mode 100644 (file)
index 0000000..3515771
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_fss_named_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_named_resize
+.SH SYNOPSIS
+.nf
+.B #include <named.h>
+.sp
+\fBf_status_t f_fss_named_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_fss_named_t *const   \fP\fInamed\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize all parts of the named structure using the same length.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B named
+The named structure to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_nameds_adjust.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_nameds_adjust.3
new file mode 100644 (file)
index 0000000..4fd885d
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_fss_nameds_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_nameds_adjust
+.SH SYNOPSIS
+.nf
+.B #include <named.h>
+.sp
+\fBf_status_t f_fss_nameds_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_fss_nameds_t *const  \fP\fInameds\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the named array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B nameds
+The nameds array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_nameds_decimate_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_nameds_decimate_by.3
new file mode 100644 (file)
index 0000000..1477ea0
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_fss_nameds_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_nameds_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <named.h>
+.sp
+\fBf_status_t f_fss_nameds_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fss_nameds_t *const  \fP\fInameds\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the named array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B nameds
+The nameds array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_nameds_decrease_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_nameds_decrease_by.3
new file mode 100644 (file)
index 0000000..0cf1ee5
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_fss_nameds_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_nameds_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <named.h>
+.sp
+\fBf_status_t f_fss_nameds_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fss_nameds_t *const  \fP\fInameds\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the named array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B nameds
+The nameds array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_nameds_increase.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_nameds_increase.3
new file mode 100644 (file)
index 0000000..b8dcb0a
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_fss_nameds_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_nameds_increase
+.SH SYNOPSIS
+.nf
+.B #include <named.h>
+.sp
+\fBf_status_t f_fss_nameds_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_fss_nameds_t *const  \fP\fInameds\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the nameds array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B nameds
+The nameds array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_nameds_increase_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_nameds_increase_by.3
new file mode 100644 (file)
index 0000000..f70cd0a
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_fss_nameds_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_nameds_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <named.h>
+.sp
+\fBf_status_t f_fss_nameds_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fss_nameds_t *const  \fP\fInameds\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the nameds array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B nameds
+The nameds array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_nameds_resize.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_nameds_resize.3
new file mode 100644 (file)
index 0000000..11f1b39
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_fss_nameds_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_nameds_resize
+.SH SYNOPSIS
+.nf
+.B #include <named.h>
+.sp
+\fBf_status_t f_fss_nameds_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_fss_nameds_t *const  \fP\fInameds\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the nameds array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B nameds
+The nameds array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_nest_adjust.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_nest_adjust.3
new file mode 100644 (file)
index 0000000..d383f07
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_fss_nest_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_nest_adjust
+.SH SYNOPSIS
+.nf
+.B #include <nest.h>
+.sp
+\fBf_status_t f_fss_nest_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_fss_nest_t *const    \fP\fInest\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the nest array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B nest
+The nest array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_nest_decimate_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_nest_decimate_by.3
new file mode 100644 (file)
index 0000000..e4b2d9b
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_fss_nest_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_nest_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <nest.h>
+.sp
+\fBf_status_t f_fss_nest_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fss_nest_t *const    \fP\fInest\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the nest array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B nest
+The nest array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_nest_decrease_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_nest_decrease_by.3
new file mode 100644 (file)
index 0000000..02972aa
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_fss_nest_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_nest_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <nest.h>
+.sp
+\fBf_status_t f_fss_nest_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fss_nest_t *const    \fP\fInest\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the nest array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B nest
+The nest array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_nest_increase.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_nest_increase.3
new file mode 100644 (file)
index 0000000..ccf0c26
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_fss_nest_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_nest_increase
+.SH SYNOPSIS
+.nf
+.B #include <nest.h>
+.sp
+\fBf_status_t f_fss_nest_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_fss_nest_t *const    \fP\fInest\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the nest array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B nest
+The nest array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_nest_increase_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_nest_increase_by.3
new file mode 100644 (file)
index 0000000..0d0e75c
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_fss_nest_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_nest_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <nest.h>
+.sp
+\fBf_status_t f_fss_nest_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fss_nest_t *const    \fP\fInest\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the nest array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B nest
+The nest array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_nest_resize.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_nest_resize.3
new file mode 100644 (file)
index 0000000..c5683aa
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_fss_nest_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_nest_resize
+.SH SYNOPSIS
+.nf
+.B #include <nest.h>
+.sp
+\fBf_status_t f_fss_nest_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_fss_nest_t *const    \fP\fInest\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the nest array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B nest
+The nest array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_nests_adjust.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_nests_adjust.3
new file mode 100644 (file)
index 0000000..4c47bdd
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_fss_nests_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_nests_adjust
+.SH SYNOPSIS
+.nf
+.B #include <nest.h>
+.sp
+\fBf_status_t f_fss_nests_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_fss_nests_t *const   \fP\fInests\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the nest array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B nests
+The nests array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_nests_decimate_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_nests_decimate_by.3
new file mode 100644 (file)
index 0000000..aae87be
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_fss_nests_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_nests_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <nest.h>
+.sp
+\fBf_status_t f_fss_nests_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fss_nests_t *const   \fP\fInests\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the nest array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B nests
+The nests array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_nests_decrease_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_nests_decrease_by.3
new file mode 100644 (file)
index 0000000..ae1f3ec
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_fss_nests_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_nests_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <nest.h>
+.sp
+\fBf_status_t f_fss_nests_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fss_nests_t *const   \fP\fInests\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the nest array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B nests
+The nests array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_nests_increase.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_nests_increase.3
new file mode 100644 (file)
index 0000000..b53f53a
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_fss_nests_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_nests_increase
+.SH SYNOPSIS
+.nf
+.B #include <nest.h>
+.sp
+\fBf_status_t f_fss_nests_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_fss_nests_t *const   \fP\fInests\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the nests array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B nests
+The nests array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_nests_increase_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_nests_increase_by.3
new file mode 100644 (file)
index 0000000..3f14736
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_fss_nests_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_nests_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <nest.h>
+.sp
+\fBf_status_t f_fss_nests_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fss_nests_t *const   \fP\fInests\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the nests array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B nests
+The nests array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_nests_resize.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_nests_resize.3
new file mode 100644 (file)
index 0000000..79ce298
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_fss_nests_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_nests_resize
+.SH SYNOPSIS
+.nf
+.B #include <nest.h>
+.sp
+\fBf_status_t f_fss_nests_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_fss_nests_t *const   \fP\fInests\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the nests array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B nests
+The nests array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_seek_to_eol.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_seek_to_eol.3
new file mode 100644 (file)
index 0000000..32a8b0c
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_fss_seek_to_eol "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_seek_to_eol
+.SH SYNOPSIS
+.nf
+.B #include <fss.h>
+.sp
+\fBf_status_t f_fss_seek_to_eol\fP(
+    \fBf_state_t                \fP\fIstate\fP,
+    \fBconst f_string_dynamic_t \fP\fIbuffer\fP,
+    \fBf_string_range_t *const  \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Seek until an EOL character is reached.
+.PP
+This does not check the character after the EOL is reached. The character after an EOL should be checked to see if it is a combining character. Combining characters after the EOL effectively make the EOL character a non-standard EOL. For most, if not all, FSS standards, a combined EOL is not the same as a standard or normal EOL.
+.SH PARAMETERS
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations.
+
+.TP
+.B buffer
+The string to process.
+
+.TP
+.B range
+The start and stop positions in the buffer being processed. This increments range->start.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but buffer.used is 0, initial range.start is greater than range.stop, or initial range.start is greater than or equal to buffer.used.
+.br
+\fBF_none_eos\fP on success and EOS was reached.
+.br
+\fBF_none_stop\fP on success and stop point was reached.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_set_adjust.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_set_adjust.3
new file mode 100644 (file)
index 0000000..bdeee87
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_fss_set_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_set_adjust
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_fss_set_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_fss_set_t *const     \fP\fIset\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the set array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B set
+The set array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_set_decimate_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_set_decimate_by.3
new file mode 100644 (file)
index 0000000..fd06664
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_fss_set_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_set_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_fss_set_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fss_set_t *const     \fP\fIset\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the set array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B set
+The set array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_set_decrease_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_set_decrease_by.3
new file mode 100644 (file)
index 0000000..c652dd6
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_fss_set_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_set_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_fss_set_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fss_set_t *const     \fP\fIset\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the set array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B set
+The set array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_set_increase.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_set_increase.3
new file mode 100644 (file)
index 0000000..64c27f2
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_fss_set_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_set_increase
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_fss_set_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_fss_set_t *const     \fP\fIset\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the set array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B set
+The set array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_set_increase_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_set_increase_by.3
new file mode 100644 (file)
index 0000000..63b3dab
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_fss_set_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_set_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_fss_set_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fss_set_t *const     \fP\fIset\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the set array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B set
+The set array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_set_quote_adjust.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_set_quote_adjust.3
new file mode 100644 (file)
index 0000000..3aa80e7
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_fss_set_quote_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_set_quote_adjust
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_fss_set_quote_adjust\fP(
+    \fBconst f_array_length_t   \fP\fIlength\fP,
+    \fBf_fss_set_quote_t *const \fP\fIset_quote\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the set_quote array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B set_quote
+The set_quote array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_set_quote_decimate_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_set_quote_decimate_by.3
new file mode 100644 (file)
index 0000000..93e1f83
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_fss_set_quote_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_set_quote_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_fss_set_quote_decimate_by\fP(
+    \fBconst f_array_length_t   \fP\fIamount\fP,
+    \fBf_fss_set_quote_t *const \fP\fIset_quote\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the set_quote array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B set_quote
+The set_quote array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_set_quote_decrease_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_set_quote_decrease_by.3
new file mode 100644 (file)
index 0000000..7c993f7
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_fss_set_quote_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_set_quote_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_fss_set_quote_decrease_by\fP(
+    \fBconst f_array_length_t   \fP\fIamount\fP,
+    \fBf_fss_set_quote_t *const \fP\fIset_quote\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the set_quote array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B set_quote
+The set_quote array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_set_quote_increase.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_set_quote_increase.3
new file mode 100644 (file)
index 0000000..264be45
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_fss_set_quote_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_set_quote_increase
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_fss_set_quote_increase\fP(
+    \fBconst f_array_length_t   \fP\fIstep\fP,
+    \fBf_fss_set_quote_t *const \fP\fIset_quote\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the set_quote array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set_quote max buffer size (F_array_length_t_size_d). If already set_quote to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B set_quote
+The set_quote array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_set_quote_increase_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_set_quote_increase_by.3
new file mode 100644 (file)
index 0000000..f0f003d
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_fss_set_quote_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_set_quote_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_fss_set_quote_increase_by\fP(
+    \fBconst f_array_length_t   \fP\fIamount\fP,
+    \fBf_fss_set_quote_t *const \fP\fIset_quote\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the set_quote array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set_quote max buffer size (F_array_length_t_size_d). If already set_quote to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B set_quote
+The set_quote array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_set_quote_resize.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_set_quote_resize.3
new file mode 100644 (file)
index 0000000..aac7164
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_fss_set_quote_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_set_quote_resize
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_fss_set_quote_resize\fP(
+    \fBconst f_array_length_t   \fP\fIlength\fP,
+    \fBf_fss_set_quote_t *const \fP\fIset_quote\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the set_quote array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B set_quote
+The set_quote array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_set_quotes_adjust.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_set_quotes_adjust.3
new file mode 100644 (file)
index 0000000..25f9b98
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_fss_set_quotes_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_set_quotes_adjust
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_fss_set_quotes_adjust\fP(
+    \fBconst f_array_length_t    \fP\fIlength\fP,
+    \fBf_fss_set_quotes_t *const \fP\fIset_quotes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the set_quote array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B set_quotes
+The set_quotes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_set_quotes_decimate_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_set_quotes_decimate_by.3
new file mode 100644 (file)
index 0000000..3e741cc
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_fss_set_quotes_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_set_quotes_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_fss_set_quotes_decimate_by\fP(
+    \fBconst f_array_length_t    \fP\fIamount\fP,
+    \fBf_fss_set_quotes_t *const \fP\fIset_quotes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the set_quote array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B set_quotes
+The set_quotes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_set_quotes_decrease_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_set_quotes_decrease_by.3
new file mode 100644 (file)
index 0000000..bba596d
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_fss_set_quotes_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_set_quotes_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_fss_set_quotes_decrease_by\fP(
+    \fBconst f_array_length_t    \fP\fIamount\fP,
+    \fBf_fss_set_quotes_t *const \fP\fIset_quotes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the set_quote array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B set_quotes
+The set_quotes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_set_quotes_increase.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_set_quotes_increase.3
new file mode 100644 (file)
index 0000000..b70d09e
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_fss_set_quotes_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_set_quotes_increase
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_fss_set_quotes_increase\fP(
+    \fBconst f_array_length_t    \fP\fIstep\fP,
+    \fBf_fss_set_quotes_t *const \fP\fIset_quotes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the set_quotes array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B set_quotes
+The set_quotes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_set_quotes_increase_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_set_quotes_increase_by.3
new file mode 100644 (file)
index 0000000..95c8f5e
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_fss_set_quotes_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_set_quotes_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_fss_set_quotes_increase_by\fP(
+    \fBconst f_array_length_t    \fP\fIamount\fP,
+    \fBf_fss_set_quotes_t *const \fP\fIset_quotes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the set_quotes array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B set_quotes
+The set_quotes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_set_quotes_resize.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_set_quotes_resize.3
new file mode 100644 (file)
index 0000000..7966678
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_fss_set_quotes_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_set_quotes_resize
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_fss_set_quotes_resize\fP(
+    \fBconst f_array_length_t    \fP\fIlength\fP,
+    \fBf_fss_set_quotes_t *const \fP\fIset_quotes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the set_quotes array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B set_quotes
+The set_quotes array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_set_resize.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_set_resize.3
new file mode 100644 (file)
index 0000000..846573e
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_fss_set_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_set_resize
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_fss_set_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_fss_set_t *const     \fP\fIset\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the set array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B set
+The set array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_sets_adjust.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_sets_adjust.3
new file mode 100644 (file)
index 0000000..698a2b9
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_fss_sets_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_sets_adjust
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_fss_sets_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_fss_sets_t *const    \fP\fIsets\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the set array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B sets
+The sets array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_sets_decimate_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_sets_decimate_by.3
new file mode 100644 (file)
index 0000000..a4c408f
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_fss_sets_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_sets_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_fss_sets_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fss_sets_t *const    \fP\fIsets\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the set array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B sets
+The sets array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_sets_decrease_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_sets_decrease_by.3
new file mode 100644 (file)
index 0000000..49e13ae
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_fss_sets_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_sets_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_fss_sets_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fss_sets_t *const    \fP\fIsets\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the set array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B sets
+The sets array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_sets_increase.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_sets_increase.3
new file mode 100644 (file)
index 0000000..c4576df
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_fss_sets_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_sets_increase
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_fss_sets_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_fss_sets_t *const    \fP\fIsets\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the sets array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B sets
+The sets array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_sets_increase_by.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_sets_increase_by.3
new file mode 100644 (file)
index 0000000..a308899
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_fss_sets_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_sets_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_fss_sets_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fss_sets_t *const    \fP\fIsets\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the sets array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B sets
+The sets array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_sets_resize.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_sets_resize.3
new file mode 100644 (file)
index 0000000..2eccd5b
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_fss_sets_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_sets_resize
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_fss_sets_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_fss_sets_t *const    \fP\fIsets\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the sets array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B sets
+The sets array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_skip_past_delimit.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_skip_past_delimit.3
new file mode 100644 (file)
index 0000000..2506398
--- /dev/null
@@ -0,0 +1,45 @@
+.TH f_fss_skip_past_delimit "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_skip_past_delimit
+.SH SYNOPSIS
+.nf
+.B #include <fss.h>
+.sp
+\fBf_status_t f_fss_skip_past_delimit\fP(
+    \fBf_state_t               \fP\fIstate\fP,
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Skip past all delimit placeholders until a non-delimit placeholder is reached.
+.SH PARAMETERS
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations.
+
+.TP
+.B buffer
+The string to process.
+
+.TP
+.B range
+The start and stop positions in the buffer being processed. This increments range->start.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but buffer.used is 0, initial range.start is greater than range.stop, or initial range.start is greater than or equal to buffer.used.
+.br
+\fBF_none_eos\fP on success and EOS was reached.
+.br
+\fBF_none_stop\fP on success and stop point was reached.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_fss/data/documentation/man/man3/f_fss_skip_past_space.3 b/level_0/f_fss/data/documentation/man/man3/f_fss_skip_past_space.3
new file mode 100644 (file)
index 0000000..3b57311
--- /dev/null
@@ -0,0 +1,65 @@
+.TH f_fss_skip_past_space "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fss_skip_past_space
+.SH SYNOPSIS
+.nf
+.B #include <fss.h>
+.sp
+\fBf_status_t f_fss_skip_past_space\fP(
+    \fBf_state_t               \fP\fIstate\fP,
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Skip past all white space, control characters, and zero-width characters, except newline '
+.PP
+' (U+000A).
+.PP
+If the first character in the given range is a combining character, then because this will not skip past anything. This is because combining characters apply from right to left.
+.SH PARAMETERS
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations.
+
+.TP
+.B buffer
+The string to process.
+
+.TP
+.B range
+The start and stop positions in the buffer being processed. This increments range->start.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but buffer.used is 0, initial range.start is greater than range.stop, or initial range.start is greater than or equal to buffer.used.
+.br
+\fBF_none_eol\fP on success and EOL was reached.
+.br
+\fBF_none_eos\fP on success and EOS was reached.
+.br
+\fBF_none_stop\fP on success and stop point was reached.
+.br
+\fBF_complete_not_utf_eos\fP (with error bit) if unable to get entire UTF-8 sequence due to EOS.
+.br
+\fBF_complete_not_utf_start\fP (with error bit) if the first character is a combining character.
+.br
+\fBF_complete_not_utf_stop\fP (with error bit) if unable to get entire UTF-8 sequence due to stop point reached.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_control().
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.br
+Errors (with error bit) from: f_utf_is_zero_width().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index 5b5d693af3f6e895de9e0554745403287ef2addd..f68c16e335619141a603170a4d05916cacd43804 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library iki.c private-iki.c iki/common.c iki/private-data.c iki/da
 
 build_sources_headers iki.h iki/common.h iki/data.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_0/f_iki/data/documentation/man/man3/f_iki_content_is.3 b/level_0/f_iki/data/documentation/man/man3/f_iki_content_is.3
new file mode 100644 (file)
index 0000000..3aa3514
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_iki_content_is "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_iki_content_is
+.SH SYNOPSIS
+.nf
+.B #include <iki.h>
+.sp
+\fBf_status_t f_iki_content_is\fP(
+    \fBconst f_string_static_t \fP\fIcontent\fP,
+    \fBconst f_string_static_t \fP\fIquote\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+A string that is analogous to f_string_dynamic_t but intended for static-only uses.
+.PP
+The f_string_static_t type should never be directly allocated or deallocated.
+.PP
+A special macro_f_string_static_t_initialize() is provided for the special purpose of easily initialize a static string. A special macro_f_string_static_t_initialize2() is provided for the special purpose of easily initialize a static string with an identical used and size.
+.PP
+string: The string. size: Total amount of space available. used: Total number of space used.
+.sp
+.RS
+.nf
+\fB
+struct f_string_static_t {
+  f_string_t       \fIstring\fP;
+  f_array_length_t \fIsize\fP;
+  f_array_length_t \fIused\fP;
+};
+\fP
+.fi
+.RE
+.SH RETURN VALUE
+.PP
+
+.br
+\fBF_true\fP on success and string is a valid content name.
+.br
+\fBF_false\fP on success and string is not a valid content name.
+.br
+\fBF_data_not\fP on success, but the content.used is 0.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_iki/data/documentation/man/man3/f_iki_content_partial_is.3 b/level_0/f_iki/data/documentation/man/man3/f_iki_content_partial_is.3
new file mode 100644 (file)
index 0000000..affc76f
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_iki_content_partial_is "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_iki_content_partial_is
+.SH SYNOPSIS
+.nf
+.B #include <iki.h>
+.sp
+\fBf_status_t f_iki_content_partial_is\fP(
+    \fBconst f_string_static_t \fP\fIcontent\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_string_static_t \fP\fIquote\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Determine if an content, found within the given range, is a valid IKI content name.
+.PP
+The content does not include the wrapping quotes.
+.SH PARAMETERS
+.TP
+.B content
+The string to validate as an content name.
+
+.TP
+.B range
+The range within the buffer that represents the content name.
+
+.TP
+.B quote
+The quote character in use. This must be either a single (') or double (") quote.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP on success and string is a valid content name.
+.br
+\fBF_false\fP on success and string is not a valid content name.
+.br
+\fBF_data_not\fP on success, but the content.used is 0.
+.br
+\fBF_data_not_eos\fP on success but the start range exceeds the buffer.used.
+.br
+\fBF_data_not_stop\fP on success but the start range exceeds the stop range.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_iki/data/documentation/man/man3/f_iki_data_delete.3 b/level_0/f_iki/data/documentation/man/man3/f_iki_data_delete.3
new file mode 100644 (file)
index 0000000..59e5f42
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_iki_data_delete "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_iki_data_delete
+.SH SYNOPSIS
+.nf
+.B #include <data.h>
+.sp
+\fBf_status_t f_iki_data_delete\fP(
+    \fBf_iki_data_t  *\fP\fIdata\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Delete the IKI data.
+.SH PARAMETERS
+.TP
+.B data
+The IKI data to delete.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_array_lengths_resize().
+.br
+Errors (with error bit) from: f_string_ranges_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_iki/data/documentation/man/man3/f_iki_data_destroy.3 b/level_0/f_iki/data/documentation/man/man3/f_iki_data_destroy.3
new file mode 100644 (file)
index 0000000..bfc4890
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_iki_data_destroy "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_iki_data_destroy
+.SH SYNOPSIS
+.nf
+.B #include <data.h>
+.sp
+\fBf_status_t f_iki_data_destroy\fP(
+    \fBf_iki_data_t  *\fP\fIdata\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Destroy the IKI data.
+.SH PARAMETERS
+.TP
+.B data
+The IKI data to destroy.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_array_lengths_adjust().
+.br
+Errors (with error bit) from: f_string_ranges_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_iki/data/documentation/man/man3/f_iki_datas_adjust.3 b/level_0/f_iki/data/documentation/man/man3/f_iki_datas_adjust.3
new file mode 100644 (file)
index 0000000..606a4e3
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_iki_datas_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_iki_datas_adjust
+.SH SYNOPSIS
+.nf
+.B #include <data.h>
+.sp
+\fBf_status_t f_iki_datas_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_iki_datas_t         *\fP\fIdatas\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the iki_datas array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B datas
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_iki/data/documentation/man/man3/f_iki_datas_append.3 b/level_0/f_iki/data/documentation/man/man3/f_iki_datas_append.3
new file mode 100644 (file)
index 0000000..2226428
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_iki_datas_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_iki_datas_append
+.SH SYNOPSIS
+.nf
+.B #include <data.h>
+.sp
+\fBf_status_t f_iki_datas_append\fP(
+    \fBconst f_iki_data_t \fP\fIsource\fP,
+    \fBf_iki_datas_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source iki_data onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source iki_data to append.
+
+.TP
+.B destination
+The destination iki_datas the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_iki/data/documentation/man/man3/f_iki_datas_append_all.3 b/level_0/f_iki/data/documentation/man/man3/f_iki_datas_append_all.3
new file mode 100644 (file)
index 0000000..fcdf6d3
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_iki_datas_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_iki_datas_append_all
+.SH SYNOPSIS
+.nf
+.B #include <data.h>
+.sp
+\fBf_status_t f_iki_datas_append_all\fP(
+    \fBconst f_iki_datas_t \fP\fIsource\fP,
+    \fBf_iki_datas_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source iki_datas onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source iki_datas to append.
+
+.TP
+.B destination
+The destination iki_datas the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_iki/data/documentation/man/man3/f_iki_datas_decimate_by.3 b/level_0/f_iki/data/documentation/man/man3/f_iki_datas_decimate_by.3
new file mode 100644 (file)
index 0000000..cd22e34
--- /dev/null
@@ -0,0 +1,39 @@
+.TH f_iki_datas_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_iki_datas_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <data.h>
+.sp
+\fBf_status_t f_iki_datas_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_iki_datas_t         *\fP\fIdatas\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the iki_datas array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B datas
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_iki/data/documentation/man/man3/f_iki_datas_decrease_by.3 b/level_0/f_iki/data/documentation/man/man3/f_iki_datas_decrease_by.3
new file mode 100644 (file)
index 0000000..c61e82f
--- /dev/null
@@ -0,0 +1,39 @@
+.TH f_iki_datas_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_iki_datas_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <data.h>
+.sp
+\fBf_status_t f_iki_datas_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_iki_datas_t         *\fP\fIdatas\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the iki_datas array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B datas
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_iki/data/documentation/man/man3/f_iki_datas_increase.3 b/level_0/f_iki/data/documentation/man/man3/f_iki_datas_increase.3
new file mode 100644 (file)
index 0000000..1e32ca1
--- /dev/null
@@ -0,0 +1,41 @@
+.TH f_iki_datas_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_iki_datas_increase
+.SH SYNOPSIS
+.nf
+.B #include <data.h>
+.sp
+\fBf_status_t f_iki_datas_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_iki_datas_t         *\fP\fIdatas\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the iki_datas array, but only if necesary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B datas
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_iki/data/documentation/man/man3/f_iki_datas_increase_by.3 b/level_0/f_iki/data/documentation/man/man3/f_iki_datas_increase_by.3
new file mode 100644 (file)
index 0000000..47fc820
--- /dev/null
@@ -0,0 +1,41 @@
+.TH f_iki_datas_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_iki_datas_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <data.h>
+.sp
+\fBf_status_t f_iki_datas_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_iki_datas_t         *\fP\fIdatas\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the iki_datas array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B datas
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_iki/data/documentation/man/man3/f_iki_datas_resize.3 b/level_0/f_iki/data/documentation/man/man3/f_iki_datas_resize.3
new file mode 100644 (file)
index 0000000..e078082
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_iki_datas_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_iki_datas_resize
+.SH SYNOPSIS
+.nf
+.B #include <data.h>
+.sp
+\fBf_status_t f_iki_datas_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_iki_datas_t         *\fP\fIdatas\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the iki_datas array.
+.SH PARAMETERS
+.TP
+.B lengthw
+The new size to use.
+
+.TP
+.B datas
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_iki/data/documentation/man/man3/f_iki_datass_adjust.3 b/level_0/f_iki/data/documentation/man/man3/f_iki_datass_adjust.3
new file mode 100644 (file)
index 0000000..2feca80
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_iki_datass_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_iki_datass_adjust
+.SH SYNOPSIS
+.nf
+.B #include <data.h>
+.sp
+\fBf_status_t f_iki_datass_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_iki_datass_t        *\fP\fIdatass\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the iki_datass array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B datass
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_iki/data/documentation/man/man3/f_iki_datass_append.3 b/level_0/f_iki/data/documentation/man/man3/f_iki_datass_append.3
new file mode 100644 (file)
index 0000000..ba2efac
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_iki_datass_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_iki_datass_append
+.SH SYNOPSIS
+.nf
+.B #include <data.h>
+.sp
+\fBf_status_t f_iki_datass_append\fP(
+    \fBconst f_iki_datas_t \fP\fIsource\fP,
+    \fBf_iki_datass_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source iki_datas onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source iki_datas to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_iki/data/documentation/man/man3/f_iki_datass_append_all.3 b/level_0/f_iki/data/documentation/man/man3/f_iki_datass_append_all.3
new file mode 100644 (file)
index 0000000..affdbce
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_iki_datass_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_iki_datass_append_all
+.SH SYNOPSIS
+.nf
+.B #include <data.h>
+.sp
+\fBf_status_t f_iki_datass_append_all\fP(
+    \fBconst f_iki_datass_t \fP\fIsource\fP,
+    \fBf_iki_datass_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source iki_datass onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source iki_datass to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_iki/data/documentation/man/man3/f_iki_datass_decimate_by.3 b/level_0/f_iki/data/documentation/man/man3/f_iki_datass_decimate_by.3
new file mode 100644 (file)
index 0000000..2c10cfa
--- /dev/null
@@ -0,0 +1,41 @@
+.TH f_iki_datass_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_iki_datass_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <data.h>
+.sp
+\fBf_status_t f_iki_datass_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_iki_datass_t        *\fP\fIdatass\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the iki_datass array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B datass
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_iki/data/documentation/man/man3/f_iki_datass_decrease_by.3 b/level_0/f_iki/data/documentation/man/man3/f_iki_datass_decrease_by.3
new file mode 100644 (file)
index 0000000..99a71c0
--- /dev/null
@@ -0,0 +1,41 @@
+.TH f_iki_datass_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_iki_datass_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <data.h>
+.sp
+\fBf_status_t f_iki_datass_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_iki_datass_t        *\fP\fIdatass\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the iki_datass array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B datass
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_iki/data/documentation/man/man3/f_iki_datass_increase.3 b/level_0/f_iki/data/documentation/man/man3/f_iki_datass_increase.3
new file mode 100644 (file)
index 0000000..bab4544
--- /dev/null
@@ -0,0 +1,41 @@
+.TH f_iki_datass_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_iki_datass_increase
+.SH SYNOPSIS
+.nf
+.B #include <data.h>
+.sp
+\fBf_status_t f_iki_datass_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_iki_datass_t        *\fP\fIdatass\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the iki_datass array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B datass
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_iki/data/documentation/man/man3/f_iki_datass_increase_by.3 b/level_0/f_iki/data/documentation/man/man3/f_iki_datass_increase_by.3
new file mode 100644 (file)
index 0000000..4e8fb1c
--- /dev/null
@@ -0,0 +1,41 @@
+.TH f_iki_datass_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_iki_datass_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <data.h>
+.sp
+\fBf_status_t f_iki_datass_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_iki_datass_t        *\fP\fIdatass\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the iki_datass array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B datass
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_iki/data/documentation/man/man3/f_iki_datass_resize.3 b/level_0/f_iki/data/documentation/man/man3/f_iki_datass_resize.3
new file mode 100644 (file)
index 0000000..731c263
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_iki_datass_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_iki_datass_resize
+.SH SYNOPSIS
+.nf
+.B #include <data.h>
+.sp
+\fBf_status_t f_iki_datass_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_iki_datass_t        *\fP\fIdatass\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the iki_datass array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B datass
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_iki/data/documentation/man/man3/f_iki_object_is.3 b/level_0/f_iki/data/documentation/man/man3/f_iki_object_is.3
new file mode 100644 (file)
index 0000000..dcf339d
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_iki_object_is "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_iki_object_is
+.SH SYNOPSIS
+.nf
+.B #include <iki.h>
+.sp
+\fBf_status_t f_iki_object_is\fP(
+    \fBconst f_string_static_t \fP\fIobject\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Determine if an object is a valid IKI object name.
+.SH PARAMETERS
+.TP
+.B object
+The string to validate as an object name.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP on success and string is a valid object name.
+.br
+\fBF_false\fP on success and string is not a valid object name.
+.br
+\fBF_data_not\fP on success, but the object.used is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_utf_is_word().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_iki/data/documentation/man/man3/f_iki_object_partial_is.3 b/level_0/f_iki/data/documentation/man/man3/f_iki_object_partial_is.3
new file mode 100644 (file)
index 0000000..102c6e1
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_iki_object_partial_is "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_iki_object_partial_is
+.SH SYNOPSIS
+.nf
+.B #include <iki.h>
+.sp
+\fBf_status_t f_iki_object_partial_is\fP(
+    \fBconst f_string_static_t \fP\fIobject\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Determine if an object, found within the given range, is a valid IKI object name.
+.SH PARAMETERS
+.TP
+.B object
+The string to validate as an object name.
+
+.TP
+.B range
+The range within the buffer that represents the object name.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP on success and string is a valid object name.
+.br
+\fBF_false\fP on success and string is not a valid object name.
+.br
+\fBF_data_not\fP on success, but the object.used is 0.
+.br
+\fBF_data_not_eos\fP on success but the start range exceeds the object.used.
+.br
+\fBF_data_not_stop\fP on success but the start range exceeds the stop range.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_utf_is_word_dash_plus().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_iki/data/documentation/man/man3/f_iki_read.3 b/level_0/f_iki/data/documentation/man/man3/f_iki_read.3
new file mode 100644 (file)
index 0000000..300dadd
--- /dev/null
@@ -0,0 +1,74 @@
+.TH f_iki_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_iki_read
+.SH SYNOPSIS
+.nf
+.B #include <iki.h>
+.sp
+\fBf_status_t f_iki_read\fP(
+    \fBconst f_state_t          \fP\fIstate\fP,
+    \fBf_string_static_t *const \fP\fIbuffer\fP,
+    \fBf_string_range_t *const  \fP\fIrange\fP,
+    \fBf_iki_data_t *const      \fP\fIdata\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Read a single iki Vocabulary and Content.
+.PP
+This does not verify if the vocabulary name is known. This only finds a complete vocabulary name and content.
+.PP
+This will increment the range after the end of any valud vocabulary and content set.
+.PP
+This will update the buffer at the given range with any placeholders to escaped data. Calling this more than once on the same buffer range could result in multiple escaping.
+.SH PARAMETERS
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B buffer
+The string to process.
+
+.TP
+.B range
+The start/stop location within the buffer to be processed. The start location will be updated as the buffer is being processed. The start location will represent where the read stopped on return. A start location past the stop location or buffer used means that the entire range was processed.
+
+.TP
+.B data
+The IKI variable data.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success and an IKI vocabulary name was found.
+.br
+\fBF_none_eos\fP on success and an IKI vocabulary name was found and end of string was reached.
+.br
+\fBF_none_stop\fP on success and an IKI vocabulary name was found and stop point was reached.
+.br
+\fBF_complete_not_utf_eos\fP on success but string ended on incomplete UTF-8 and f_iki_state_flag_utf_fail_on_valid_not_e is not set.
+.br
+\fBF_complete_not_utf_stop\fP on success but stop point reached on incomplete UTF-8 and f_iki_state_flag_utf_fail_on_valid_not_e is not set.
+.br
+\fBF_data_not\fP on success, but there were no IKI vocabulary names found.
+.br
+\fBF_data_not_eos\fP on success and EOS was reached, but there were no IKI vocabulary names found.
+.br
+\fBF_data_not_stop\fP on success and stop point was reached, but there were no IKI vocabulary names found.
+.br
+\fBF_complete_not_utf_eos\fP (with error bit) on success but string ended on incomplete UTF-8 and f_iki_state_flag_utf_fail_on_valid_not_e is set.
+.br
+\fBF_complete_not_utf_stop\fP (with error bit) on success but stop point reached on incomplete UTF-8 and f_iki_state_flag_utf_fail_on_valid_not_e is set.
+.br
+\fBF_interrupt\fP (with error bit) if stopping due to an interrupt.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if a string length is too large to store in the buffer.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 84d09a75e538318baeef3693fd227a4bdb3eb5ea..8a3fbc3b756f22804d3640afd3e6870866563d8f 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library limit.c limit/set.c limit/value.c limit/private-set.c limi
 
 build_sources_headers limit.h limit/set.h limit/value.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_process.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_process.3
new file mode 100644 (file)
index 0000000..19586b4
--- /dev/null
@@ -0,0 +1,52 @@
+.TH f_limit_process "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_process
+.SH SYNOPSIS
+.nf
+.B #include <limit.h>
+.sp
+\fBf_status_t f_limit_process\fP(
+    \fBconst pid_t                  \fP\fIid\fP,
+    \fBconst int                    \fP\fItype\fP,
+    \fBconst f_limit_value_t *const \fP\fIvalue_next\fP,
+    \fBf_limit_value_t *const       \fP\fIvalue_current\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get or set the resource limits for some process.
+.PP
+Either value_next or value_current must be non-zero.
+.SH PARAMETERS
+.TP
+.B id
+The PID to set the resources of.
+
+.TP
+.B type
+The resource type to set limit of or get limit of.
+
+.TP
+.B value_next
+The resource value to assign. If 0 is used instead of a valid value, then value_current must be non-zero and will be populated with the current resource value.
+
+.TP
+.B value_current
+The resource value currently assigned. If 0, then value_next is assigning the value but the previous value will not be returned. If both value_next and value_current are non-zero, then this represents the value prior to the assignment of value_next.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_address_not\fP (with error bit) if a pointer is outside of valid address space.
+.br
+\fBF_found_not\fP (with error bit) if no process by the given PID was found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if not allowed to perform this action.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_sets_adjust.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_sets_adjust.3
new file mode 100644 (file)
index 0000000..3d57055
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_limit_sets_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_sets_adjust
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_limit_sets_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_limit_sets_t        *\fP\fIsets\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the sets array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B sets
+The sets array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_sets_append.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_sets_append.3
new file mode 100644 (file)
index 0000000..ee648df
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_limit_sets_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_sets_append
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_limit_sets_append\fP(
+    \fBconst f_limit_set_t \fP\fIsource\fP,
+    \fBf_limit_sets_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source set onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source set to append.
+
+.TP
+.B destination
+The destination sets the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_sets_append_all.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_sets_append_all.3
new file mode 100644 (file)
index 0000000..f50398a
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_limit_sets_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_sets_append_all
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_limit_sets_append_all\fP(
+    \fBconst f_limit_sets_t \fP\fIsource\fP,
+    \fBf_limit_sets_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source sets onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source sets to append.
+
+.TP
+.B destination
+The destination sets the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_sets_decimate_by.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_sets_decimate_by.3
new file mode 100644 (file)
index 0000000..42aafb3
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_limit_sets_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_sets_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_limit_sets_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_limit_sets_t        *\fP\fIsets\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the sets array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B sets
+The sets array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_sets_decrease_by.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_sets_decrease_by.3
new file mode 100644 (file)
index 0000000..11deffc
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_limit_sets_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_sets_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_limit_sets_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_limit_sets_t        *\fP\fIsets\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the sets array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B sets
+The sets array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_sets_increase.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_sets_increase.3
new file mode 100644 (file)
index 0000000..648cd12
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_limit_sets_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_sets_increase
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_limit_sets_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_limit_sets_t        *\fP\fIsets\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the sets array, but only if necesary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B sets
+The sets array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_sets_increase_by.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_sets_increase_by.3
new file mode 100644 (file)
index 0000000..22bdc19
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_limit_sets_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_sets_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_limit_sets_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_limit_sets_t        *\fP\fIsets\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the sets array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B sets
+The sets array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_sets_resize.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_sets_resize.3
new file mode 100644 (file)
index 0000000..f890e7e
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_limit_sets_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_sets_resize
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_limit_sets_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_limit_sets_t        *\fP\fIsets\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the sets array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B sets
+The sets array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_setss_adjust.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_setss_adjust.3
new file mode 100644 (file)
index 0000000..50e14e3
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_limit_setss_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_setss_adjust
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_limit_setss_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_limit_setss_t       *\fP\fIsetss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the setss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B setss
+The setss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_setss_append.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_setss_append.3
new file mode 100644 (file)
index 0000000..c570bd0
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_limit_setss_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_setss_append
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_limit_setss_append\fP(
+    \fBconst f_limit_sets_t \fP\fIsource\fP,
+    \fBf_limit_setss_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source sets onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source sets to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_setss_append_all.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_setss_append_all.3
new file mode 100644 (file)
index 0000000..8f8d474
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_limit_setss_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_setss_append_all
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_limit_setss_append_all\fP(
+    \fBconst f_limit_setss_t \fP\fIsource\fP,
+    \fBf_limit_setss_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source setss onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source setss to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_setss_decimate_by.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_setss_decimate_by.3
new file mode 100644 (file)
index 0000000..e38663c
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_limit_setss_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_setss_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_limit_setss_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_limit_setss_t       *\fP\fIsetss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the setss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B setss
+The setss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_setss_decrease_by.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_setss_decrease_by.3
new file mode 100644 (file)
index 0000000..62c0516
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_limit_setss_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_setss_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_limit_setss_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_limit_setss_t       *\fP\fIsetss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the setss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B setss
+The setss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_setss_increase.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_setss_increase.3
new file mode 100644 (file)
index 0000000..bcf1252
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_limit_setss_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_setss_increase
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_limit_setss_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_limit_setss_t       *\fP\fIsetss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the setss array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B setss
+The setss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_setss_increase_by.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_setss_increase_by.3
new file mode 100644 (file)
index 0000000..c939ce5
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_limit_setss_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_setss_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_limit_setss_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_limit_setss_t       *\fP\fIsetss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the setss array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B setss
+The setss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_setss_resize.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_setss_resize.3
new file mode 100644 (file)
index 0000000..74be585
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_limit_setss_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_setss_resize
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_limit_setss_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_limit_setss_t       *\fP\fIsetss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the setss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B setss
+The setss array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_values_adjust.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_values_adjust.3
new file mode 100644 (file)
index 0000000..44737a9
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_limit_values_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_values_adjust
+.SH SYNOPSIS
+.nf
+.B #include <value.h>
+.sp
+\fBf_status_t f_limit_values_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_limit_values_t      *\fP\fIvalues\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the values array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B values
+The values array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_values_append.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_values_append.3
new file mode 100644 (file)
index 0000000..31401e0
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_limit_values_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_values_append
+.SH SYNOPSIS
+.nf
+.B #include <value.h>
+.sp
+\fBf_status_t f_limit_values_append\fP(
+    \fBconst f_limit_value_t \fP\fIsource\fP,
+    \fBf_limit_values_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source value onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source value to append.
+
+.TP
+.B destination
+The destination values the source is appended onto.
+
+.SH RETURN VALUE
+.br
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_values_append_all.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_values_append_all.3
new file mode 100644 (file)
index 0000000..a7074cf
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_limit_values_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_values_append_all
+.SH SYNOPSIS
+.nf
+.B #include <value.h>
+.sp
+\fBf_status_t f_limit_values_append_all\fP(
+    \fBconst f_limit_values_t \fP\fIsource\fP,
+    \fBf_limit_values_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source values onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source values to append.
+
+.TP
+.B destination
+The destination values the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_values_decimate_by.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_values_decimate_by.3
new file mode 100644 (file)
index 0000000..dc02a9b
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_limit_values_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_values_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <value.h>
+.sp
+\fBf_status_t f_limit_values_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_limit_values_t      *\fP\fIvalues\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the values array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B values
+The values array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_values_decrease_by.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_values_decrease_by.3
new file mode 100644 (file)
index 0000000..e1bf962
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_limit_values_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_values_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <value.h>
+.sp
+\fBf_status_t f_limit_values_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_limit_values_t      *\fP\fIvalues\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the values array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B values
+The values array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_values_increase.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_values_increase.3
new file mode 100644 (file)
index 0000000..07c3973
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_limit_values_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_values_increase
+.SH SYNOPSIS
+.nf
+.B #include <value.h>
+.sp
+\fBf_status_t f_limit_values_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_limit_values_t      *\fP\fIvalues\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the values array, but only if necesary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B values
+The values array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_values_increase_by.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_values_increase_by.3
new file mode 100644 (file)
index 0000000..030b92e
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_limit_values_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_values_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <value.h>
+.sp
+\fBf_status_t f_limit_values_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_limit_values_t      *\fP\fIvalues\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the values array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B values
+The values array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_values_resize.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_values_resize.3
new file mode 100644 (file)
index 0000000..1443de4
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_limit_values_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_values_resize
+.SH SYNOPSIS
+.nf
+.B #include <value.h>
+.sp
+\fBf_status_t f_limit_values_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_limit_values_t      *\fP\fIvalues\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the values array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B values
+The values array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_valuess_adjust.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_valuess_adjust.3
new file mode 100644 (file)
index 0000000..3089563
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_limit_valuess_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_valuess_adjust
+.SH SYNOPSIS
+.nf
+.B #include <value.h>
+.sp
+\fBf_status_t f_limit_valuess_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_limit_valuess_t     *\fP\fIvaluess\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the valuess array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B valuess
+The valuess array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_valuess_append.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_valuess_append.3
new file mode 100644 (file)
index 0000000..bea1488
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_limit_valuess_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_valuess_append
+.SH SYNOPSIS
+.nf
+.B #include <value.h>
+.sp
+\fBf_status_t f_limit_valuess_append\fP(
+    \fBconst f_limit_values_t \fP\fIsource\fP,
+    \fBf_limit_valuess_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source values onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source values to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_valuess_append_all.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_valuess_append_all.3
new file mode 100644 (file)
index 0000000..fb40215
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_limit_valuess_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_valuess_append_all
+.SH SYNOPSIS
+.nf
+.B #include <value.h>
+.sp
+\fBf_status_t f_limit_valuess_append_all\fP(
+    \fBconst f_limit_valuess_t \fP\fIsource\fP,
+    \fBf_limit_valuess_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source valuess onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source valuess to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_valuess_decimate_by.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_valuess_decimate_by.3
new file mode 100644 (file)
index 0000000..f8825b7
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_limit_valuess_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_valuess_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <value.h>
+.sp
+\fBf_status_t f_limit_valuess_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_limit_valuess_t     *\fP\fIvaluess\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the valuess array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B valuess
+The valuess array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_valuess_decrease_by.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_valuess_decrease_by.3
new file mode 100644 (file)
index 0000000..a74744f
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_limit_valuess_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_valuess_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <value.h>
+.sp
+\fBf_status_t f_limit_valuess_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_limit_valuess_t     *\fP\fIvaluess\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the valuess array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B valuess
+The valuess array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete(). Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_valuess_increase.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_valuess_increase.3
new file mode 100644 (file)
index 0000000..abac109
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_limit_valuess_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_valuess_increase
+.SH SYNOPSIS
+.nf
+.B #include <value.h>
+.sp
+\fBf_status_t f_limit_valuess_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_limit_valuess_t     *\fP\fIvaluess\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the valuess array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B valuess
+The valuess array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_valuess_increase_by.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_valuess_increase_by.3
new file mode 100644 (file)
index 0000000..4db2d87
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_limit_valuess_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_valuess_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <value.h>
+.sp
+\fBf_status_t f_limit_valuess_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_limit_valuess_t     *\fP\fIvaluess\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the valuess array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B valuess
+The valuess array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_limit/data/documentation/man/man3/f_limit_valuess_resize.3 b/level_0/f_limit/data/documentation/man/man3/f_limit_valuess_resize.3
new file mode 100644 (file)
index 0000000..26bfe37
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_limit_valuess_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_limit_valuess_resize
+.SH SYNOPSIS
+.nf
+.B #include <value.h>
+.sp
+\fBf_status_t f_limit_valuess_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_limit_valuess_t     *\fP\fIvaluess\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the valuess array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B valuess
+The valuess array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index b9bcfcb61e74618badf31152523de3e988932f8d..82b58ce336dd191e9526b57193b5f389f782151f 100644 (file)
@@ -35,6 +35,8 @@ build_sources_library memory.c private-memory.c memory/structure.c
 
 build_sources_headers memory.h memory/common.h memory/structure.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_0/f_memory/data/documentation/man/man3/f_memory_adjust.3 b/level_0/f_memory/data/documentation/man/man3/f_memory_adjust.3
new file mode 100644 (file)
index 0000000..955165e
--- /dev/null
@@ -0,0 +1,52 @@
+.TH f_memory_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_memory_adjust
+.SH SYNOPSIS
+.nf
+.B #include <memory.h>
+.sp
+\fBf_status_t f_memory_adjust\fP(
+    \fBconst size_t \fP\fIold_length\fP,
+    \fBconst size_t \fP\fInew_length\fP,
+    \fBconst size_t \fP\fIsize\fP,
+    \fBvoid **const \fP\fIpointer\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provide means to use memory routines, with error checking. Securely resize dynamically allocated data.
+.PP
+Will change all data to 0 prior to deallocation.
+.PP
+The pointer address might be changed by realloc().
+.SH PARAMETERS
+.TP
+.B old_length
+The total number of blocks representing the length to be resized from.
+
+.TP
+.B new_length
+The total number of blocks representing the length to be resized to.
+
+.TP
+.B size
+The block size, in bytes (size * length = allocated size).
+
+.TP
+.B pointer
+A pointer to the address that will be resized.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there was nothing to do.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_memory/data/documentation/man/man3/f_memory_delete.3 b/level_0/f_memory/data/documentation/man/man3/f_memory_delete.3
new file mode 100644 (file)
index 0000000..1307af9
--- /dev/null
@@ -0,0 +1,45 @@
+.TH f_memory_delete "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_memory_delete
+.SH SYNOPSIS
+.nf
+.B #include <memory.h>
+.sp
+\fBf_status_t f_memory_delete\fP(
+    \fBconst size_t \fP\fIlength\fP,
+    \fBconst size_t \fP\fIsize\fP,
+    \fBvoid **const \fP\fIpointer\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Delete dynamically allocated data.
+.PP
+Will not change any of the data to 0 prior to deallocation.
+.PP
+Type and length are not normally used by this function but must be provided for the cases when f_memory_delete is swapped with f_memory_destroy (or vice-versa).
+.SH PARAMETERS
+.TP
+.B length
+The total number of blocks to be allocated. If length is 0 then no delete is performed.
+
+.TP
+.B size
+The block size, in bytes (size * length = allocated size). If size is 0 then no delete is performed.
+
+.TP
+.B pointer
+A pointer to the address that will be freed.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there was nothing to do.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_memory/data/documentation/man/man3/f_memory_destroy.3 b/level_0/f_memory/data/documentation/man/man3/f_memory_destroy.3
new file mode 100644 (file)
index 0000000..9273023
--- /dev/null
@@ -0,0 +1,43 @@
+.TH f_memory_destroy "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_memory_destroy
+.SH SYNOPSIS
+.nf
+.B #include <memory.h>
+.sp
+\fBf_status_t f_memory_destroy\fP(
+    \fBconst size_t \fP\fIlength\fP,
+    \fBconst size_t \fP\fIsize\fP,
+    \fBvoid **const \fP\fIpointer\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Securely deletes some dynamically allocated data.
+.PP
+Will change all data to 0 prior to deallocation.
+.SH PARAMETERS
+.TP
+.B length
+The total number of blocks to be allocated. If length is 0 then no delete is performed.
+
+.TP
+.B size
+The block size, in bytes (size * length = allocated size). If size is 0 then no delete is performed.
+
+.TP
+.B pointer
+A pointer to the address that will be freed.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there was nothing to do.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_memory/data/documentation/man/man3/f_memory_new.3 b/level_0/f_memory/data/documentation/man/man3/f_memory_new.3
new file mode 100644 (file)
index 0000000..261bba6
--- /dev/null
@@ -0,0 +1,43 @@
+.TH f_memory_new "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_memory_new
+.SH SYNOPSIS
+.nf
+.B #include <memory.h>
+.sp
+\fBf_status_t f_memory_new\fP(
+    \fBconst size_t \fP\fIlength\fP,
+    \fBconst size_t \fP\fIsize\fP,
+    \fBvoid **const \fP\fIpointer\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create some dynamically allocated array of some length.
+.SH PARAMETERS
+.TP
+.B length
+The total number of blocks to be allocated. Must be greater than 0.
+
+.TP
+.B size
+The block size, in bytes (size * length = allocated size). Must be greater than 0.
+
+.TP
+.B pointer
+A pointer that will be updated to the address of the newly allocated memory.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there was nothing to do.
+.br
+\fBF_memory_not\fP (with error bit) on allocation error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_memory/data/documentation/man/man3/f_memory_new_aligned.3 b/level_0/f_memory/data/documentation/man/man3/f_memory_new_aligned.3
new file mode 100644 (file)
index 0000000..a97bdbd
--- /dev/null
@@ -0,0 +1,43 @@
+.TH f_memory_new_aligned "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_memory_new_aligned
+.SH SYNOPSIS
+.nf
+.B #include <memory.h>
+.sp
+\fBf_status_t f_memory_new_aligned\fP(
+    \fBconst size_t \fP\fIlength\fP,
+    \fBconst size_t \fP\fIalignment\fP,
+    \fBvoid **const \fP\fIpointer\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create some dynamically allocated array of some length, guaranteeing aligned memory.
+.SH PARAMETERS
+.TP
+.B length
+The total number of blocks to be allocated. Must be greater than 0. Must be a multiple of alignment.
+
+.TP
+.B alignment
+The size of the alignment, such as sizeof(void *). Must be greater than 0.
+
+.TP
+.B pointer
+A pointer that will be updated to the address of the newly allocated memory.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there was nothing to do.
+.br
+\fBF_memory_not\fP (with error bit) on allocation error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_memory/data/documentation/man/man3/f_memory_resize.3 b/level_0/f_memory/data/documentation/man/man3/f_memory_resize.3
new file mode 100644 (file)
index 0000000..c8c6880
--- /dev/null
@@ -0,0 +1,52 @@
+.TH f_memory_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_memory_resize
+.SH SYNOPSIS
+.nf
+.B #include <memory.h>
+.sp
+\fBf_status_t f_memory_resize\fP(
+    \fBconst size_t \fP\fIold_length\fP,
+    \fBconst size_t \fP\fInew_length\fP,
+    \fBconst size_t \fP\fIsize\fP,
+    \fBvoid **const \fP\fIpointer\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize dynamically allocated data.
+.PP
+Will not change any of the data prior to deallocation.
+.PP
+The pointer address might be changed by realloc().
+.SH PARAMETERS
+.TP
+.B old_length
+The total number of blocks representing the length to be resized from.
+
+.TP
+.B new_length
+The total number of blocks representing the length to be resized to.
+
+.TP
+.B size
+The block size, in bytes (size * length = allocated size).
+
+.TP
+.B pointer
+A pointer to the address that will be resized.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there was nothing to do.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_memory/data/documentation/man/man3/f_memory_structure_adjust.3 b/level_0/f_memory/data/documentation/man/man3/f_memory_structure_adjust.3
new file mode 100644 (file)
index 0000000..d8c6d2c
--- /dev/null
@@ -0,0 +1,51 @@
+.TH f_memory_structure_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_memory_structure_adjust
+.SH SYNOPSIS
+.nf
+.B #include <structure.h>
+.sp
+\fBf_status_t f_memory_structure_adjust\fP(
+    \fBconst size_t            \fP\fIlength_new\fP,
+    \fBconst size_t            \fP\fItype_size\fP,
+    \fBvoid **const            \fP\fIstructure\fP,
+    \fBf_array_length_t *const \fP\fIused\fP,
+    \fBf_array_length_t *const \fP\fIsize\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the structure.
+.PP
+Memory being deleted will be wiped.
+.SH PARAMETERS
+.TP
+.B length_new
+The new size of the structure array. Setting a length of 0 will result in the deletion (freeing) of the structure.
+
+.TP
+.B type_size
+The size of the structure type (such as: sizeof(structure_size)). Must be greater than 0.
+
+.TP
+.B structure
+The structure to delete.
+
+.TP
+.B used
+The amount of data used by the structure.
+
+.TP
+.B size
+The amount of data allocated to the structure.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on allocation error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_memory/data/documentation/man/man3/f_memory_structure_decimate_by.3 b/level_0/f_memory/data/documentation/man/man3/f_memory_structure_decimate_by.3
new file mode 100644 (file)
index 0000000..8cfb24d
--- /dev/null
@@ -0,0 +1,53 @@
+.TH f_memory_structure_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_memory_structure_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <structure.h>
+.sp
+\fBf_status_t f_memory_structure_decimate_by\fP(
+    \fBconst f_array_length_t  \fP\fIamount\fP,
+    \fBconst size_t            \fP\fItype_size\fP,
+    \fBvoid **const            \fP\fIstructure\fP,
+    \fBf_array_length_t *const \fP\fIused\fP,
+    \fBf_array_length_t *const \fP\fIsize\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the structure to a smaller size, by the given amount.
+.PP
+This will not shrink the size to less than 0. Memory being deleted will be wiped.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B type_size
+The size of the structure type (such as: sizeof(structure_size)). Must be greater than 0.
+
+.TP
+.B structure
+The structure to delete.
+
+.TP
+.B used
+The amount of data used by the structure.
+
+.TP
+.B size
+The amount of data allocated to the structure.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to decimate size (amount = 0 or size = 0).
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_memory/data/documentation/man/man3/f_memory_structure_decrease_by.3 b/level_0/f_memory/data/documentation/man/man3/f_memory_structure_decrease_by.3
new file mode 100644 (file)
index 0000000..b32cc83
--- /dev/null
@@ -0,0 +1,53 @@
+.TH f_memory_structure_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_memory_structure_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <structure.h>
+.sp
+\fBf_status_t f_memory_structure_decrease_by\fP(
+    \fBconst f_array_length_t  \fP\fIamount\fP,
+    \fBconst size_t            \fP\fItype_size\fP,
+    \fBvoid **const            \fP\fIstructure\fP,
+    \fBf_array_length_t *const \fP\fIused\fP,
+    \fBf_array_length_t *const \fP\fIsize\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the structure to a smaller size, by the given amount.
+.PP
+This will not shrink the size to less than 0. Memory being deleted will not be wiped.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease by.
+
+.TP
+.B type_size
+The size of the structure type (such as: sizeof(structure_size)). Must be greater than 0.
+
+.TP
+.B structure
+The structure to delete.
+
+.TP
+.B used
+The amount of data used by the structure.
+
+.TP
+.B size
+The amount of data allocated to the structure.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to decrease size (amount = 0 or size = 0).
+.br
+\fBF_memory_not\fP (with error bit) on allocation error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_memory/data/documentation/man/man3/f_memory_structure_increase.3 b/level_0/f_memory/data/documentation/man/man3/f_memory_structure_increase.3
new file mode 100644 (file)
index 0000000..2c76a67
--- /dev/null
@@ -0,0 +1,55 @@
+.TH f_memory_structure_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_memory_structure_increase
+.SH SYNOPSIS
+.nf
+.B #include <structure.h>
+.sp
+\fBf_status_t f_memory_structure_increase\fP(
+    \fBconst f_array_length_t  \fP\fIstep\fP,
+    \fBconst size_t            \fP\fItype_size\fP,
+    \fBvoid **const            \fP\fIstructure\fP,
+    \fBf_array_length_t *const \fP\fIused\fP,
+    \fBf_array_length_t *const \fP\fIsize\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the structure, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B type_size
+The size of the structure type (such as: sizeof(structure_size)). Must be greater than 0.
+
+.TP
+.B structure
+The structure to delete.
+
+.TP
+.B used
+The amount of data used by the structure.
+
+.TP
+.B size
+The amount of data allocated to the structure.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on allocation error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_memory/data/documentation/man/man3/f_memory_structure_increase_by.3 b/level_0/f_memory/data/documentation/man/man3/f_memory_structure_increase_by.3
new file mode 100644 (file)
index 0000000..ca17cef
--- /dev/null
@@ -0,0 +1,55 @@
+.TH f_memory_structure_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_memory_structure_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <structure.h>
+.sp
+\fBf_status_t f_memory_structure_increase_by\fP(
+    \fBconst f_array_length_t  \fP\fIamount\fP,
+    \fBconst size_t            \fP\fItype_size\fP,
+    \fBvoid **const            \fP\fIstructure\fP,
+    \fBf_array_length_t *const \fP\fIused\fP,
+    \fBf_array_length_t *const \fP\fIsize\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the structure to a larger size.
+.PP
+This will resize making the array larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B type_size
+The size of the structure type (such as: sizeof(structure_size)). Must be greater than 0.
+
+.TP
+.B structure
+The structure to delete.
+
+.TP
+.B used
+The amount of data used by the structure.
+
+.TP
+.B size
+The amount of data allocated to the structure.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (amount = 0 or used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on allocation error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_memory/data/documentation/man/man3/f_memory_structure_resize.3 b/level_0/f_memory/data/documentation/man/man3/f_memory_structure_resize.3
new file mode 100644 (file)
index 0000000..70b84d0
--- /dev/null
@@ -0,0 +1,51 @@
+.TH f_memory_structure_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_memory_structure_resize
+.SH SYNOPSIS
+.nf
+.B #include <structure.h>
+.sp
+\fBf_status_t f_memory_structure_resize\fP(
+    \fBconst size_t            \fP\fIlength_new\fP,
+    \fBconst size_t            \fP\fItype_size\fP,
+    \fBvoid **const            \fP\fIstructure\fP,
+    \fBf_array_length_t *const \fP\fIused\fP,
+    \fBf_array_length_t *const \fP\fIsize\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the structure.
+.PP
+Memory being deleted will not be wiped.
+.SH PARAMETERS
+.TP
+.B length_new
+The new size of the structure array. Setting a length of 0 will result in the deletion (freeing) of the structure.
+
+.TP
+.B type_size
+The size of the structure type (such as: sizeof(structure_size)).
+
+.TP
+.B structure
+The structure to delete.
+
+.TP
+.B used
+The amount of data used by the structure.
+
+.TP
+.B size
+The amount of data allocated to the structure.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on allocation error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 324b76a4ef20250c4ed4cdb496d2c879cd477bf1..eb783c9b87d4d504f4103f3fd9e5e81fd35b8cf3 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library path.c private-path.c path/common.c
 
 build_sources_headers path.h path/common.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_0/f_path/data/documentation/man/man3/f_path_change.3 b/level_0/f_path/data/documentation/man/man3/f_path_change.3
new file mode 100644 (file)
index 0000000..a427e00
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_path_change "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_path_change
+.SH SYNOPSIS
+.nf
+.B #include <path.h>
+.sp
+\fBf_status_t f_path_change\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Change to a path.
+.PP
+When path.used is 0, then this is treated as an empty string.
+.SH PARAMETERS
+.TP
+.B path
+The file path.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_directory\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_file_found_not\fP if the path was not found.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_path/data/documentation/man/man3/f_path_change_at.3 b/level_0/f_path/data/documentation/man/man3/f_path_change_at.3
new file mode 100644 (file)
index 0000000..f916d9e
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_path_change_at "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_path_change_at
+.SH SYNOPSIS
+.nf
+.B #include <path.h>
+.sp
+\fBf_status_t f_path_change_at\fP(
+    \fBconst int \fP\fIat_id\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Change to a path at the given open file descriptor.
+.SH PARAMETERS
+.TP
+.B at_id
+An open directory file descriptor, in which path is relative to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_directory\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_directory_descriptor\fP (with error bit) for bad directory descriptor for at_id.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_file_found_not\fP if the path was not found.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_path/data/documentation/man/man3/f_path_current.3 b/level_0/f_path/data/documentation/man/man3/f_path_current.3
new file mode 100644 (file)
index 0000000..a61093b
--- /dev/null
@@ -0,0 +1,55 @@
+.TH f_path_current "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_path_current
+.SH SYNOPSIS
+.nf
+.B #include <path.h>
+.sp
+\fBf_status_t f_path_current\fP(
+    \fBconst bool                \fP\fIreal\fP,
+    \fBf_string_dynamic_t *const \fP\fIpath\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the current path.
+
+.SH PARAMETERS
+.TP
+.B real
+If F_true, then get the real path and will result in an absolute path (resolving symlinks, etc..). Otherwise, this gets the path as it appears to be.
+
+.TP
+.B path
+The (allocated) file path. This will have a max size of F_path_length_max_d + 1. This will be NULL terminated at real->used + 1.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_buffer_too_small\fP (with error bit) if the buffer is too small to store the path.
+.br
+\fBF_directory\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_file_found_not\fP if the path was not found.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_path/data/documentation/man/man3/f_path_directory_cleanup.3 b/level_0/f_path/data/documentation/man/man3/f_path_directory_cleanup.3
new file mode 100644 (file)
index 0000000..42ab743
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_path_directory_cleanup "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_path_directory_cleanup
+.SH SYNOPSIS
+.nf
+.B #include <path.h>
+.sp
+\fBf_status_t f_path_directory_cleanup\fP(
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBf_string_dynamic_t *const \fP\fIdirectory\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Ensure that the given directory path string doesn't have redundant path separators.
+.PP
+The directory path is not validated to exist.
+.PP
+Ensures that multiple consecutive '/' following '../' is reduced to only '../' ('..////' would become '../').
+.PP
+The directory string will be NULL terminated after directory.used.
+.SH PARAMETERS
+.TP
+.B source
+The south path to cleanup.
+
+.TP
+.B directory
+The cleaned up directory string. The directory string is replaced by this function.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by()
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_path/data/documentation/man/man3/f_path_is.3 b/level_0/f_path/data/documentation/man/man3/f_path_is.3
new file mode 100644 (file)
index 0000000..17c0e30
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_path_is "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_path_is
+.SH SYNOPSIS
+.nf
+.B #include <path.h>
+.sp
+\fBf_status_t f_path_is\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify whether or not a string represents a path string.
+.PP
+This does not check to see if the path exists or not. This does not stop on NULL (NULL characters are ignored).
+.PP
+A string without any path parts that could be a path is not considered a path by this function. That is to say "my_file.txt" is not a path string but "./my_file.txt" is a path string.
+.SH PARAMETERS
+.TP
+.B path
+The string that may or may not represent a path.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if the string is a path string.
+.br
+\fBF_false\fP if the string is not a path string.
+.br
+\fBF_data_not\fP if the string has a length of 0 or the string is NULL.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_path/data/documentation/man/man3/f_path_is_absolute.3 b/level_0/f_path/data/documentation/man/man3/f_path_is_absolute.3
new file mode 100644 (file)
index 0000000..dccea33
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_path_is_absolute "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_path_is_absolute
+.SH SYNOPSIS
+.nf
+.B #include <path.h>
+.sp
+\fBf_status_t f_path_is_absolute\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify whether or not a string represents an absolute path string.
+.PP
+This does not check to see if the path exists or not. This does not stop on NULL (NULL characters are ignored).
+.PP
+A string with path parts that start with '/' is an absolute path. That is to say "/my_file.txt" is an absolute path string.
+.SH PARAMETERS
+.TP
+.B path
+The string that may or may not represent an absolute path.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if the string is an absolute path string.
+.br
+\fBF_false\fP if the string is not an absolute path string.
+.br
+\fBF_data_not\fP if the string has a length of 0 or the string is NULL.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_path/data/documentation/man/man3/f_path_is_relative.3 b/level_0/f_path/data/documentation/man/man3/f_path_is_relative.3
new file mode 100644 (file)
index 0000000..44687b9
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_path_is_relative "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_path_is_relative
+.SH SYNOPSIS
+.nf
+.B #include <path.h>
+.sp
+\fBf_status_t f_path_is_relative\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify whether or not a string represents a relative path string.
+.PP
+This does not check to see if the path exists or not. This does not stop on NULL (NULL characters are ignored).
+.PP
+A string without any path parts that could be a path is considered a relative path by this function. That is to say "my_file.txt" is a relative path string.
+.PP
+The strings that are relative to the current path, such as "./my_file.txt", are considered relative by this function.
+.SH PARAMETERS
+.TP
+.B path
+The string that may or may not represent a relative path.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if the string is a relative path string.
+.br
+\fBF_false\fP if the string is not a relative path string.
+.br
+\fBF_data_not\fP if the string has a length of 0 or the string is NULL.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_path/data/documentation/man/man3/f_path_is_relative_current.3 b/level_0/f_path/data/documentation/man/man3/f_path_is_relative_current.3
new file mode 100644 (file)
index 0000000..058ec33
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_path_is_relative_current "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_path_is_relative_current
+.SH SYNOPSIS
+.nf
+.B #include <path.h>
+.sp
+\fBf_status_t f_path_is_relative_current\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify whether or not a string explicitly represents a relative path string to the current working directory.
+.PP
+This does not check to see if the path exists or not. This does not stop on NULL (NULL characters are ignored).
+.PP
+A string that is explicitly relative to the current working directory must begin with one of "./" or "../".
+.PP
+This does not return true for paths that are implicitly relative, such as "abc".
+.SH PARAMETERS
+.TP
+.B path
+The string that may or may not represent a relative path.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if the string is a relative path string.
+.br
+\fBF_false\fP if the string is not a relative path string.
+.br
+\fBF_data_not\fP if the string has a length of 0 or the string is NULL.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_path/data/documentation/man/man3/f_path_real.3 b/level_0/f_path/data/documentation/man/man3/f_path_real.3
new file mode 100644 (file)
index 0000000..f817cc8
--- /dev/null
@@ -0,0 +1,56 @@
+.TH f_path_real "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_path_real
+.SH SYNOPSIS
+.nf
+.B #include <path.h>
+.sp
+\fBf_status_t f_path_real\fP(
+    \fBconst f_string_static_t   \fP\fIpath\fP,
+    \fBf_string_dynamic_t *const \fP\fIreal\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the real path for the given path.
+.PP
+This does check to see if the path exists or not (path must exist). This processes all relative parts. This processes all symbolic links. This has a max size of F_path_length_max_d + 1.
+.SH PARAMETERS
+.TP
+.B path
+The source path to determine what the real path is. This is a NULL terminated string.
+
+.TP
+.B real
+The (allocated) real file path. This will have a max size of F_path_length_max_d + 1. This will be NULL terminated at real->used + 1.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_buffer_too_small\fP (with error bit) if the buffer is too small to store the path.
+.br
+\fBF_directory\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_file_found_not\fP if the path was not found.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index 4561724325f4171703bcc7b8eabde0a8261d2d42..77e74d4eaf0bb2b5eb91041db94b46b5149f21ff 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library pipe.c
 
 build_sources_headers pipe.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_0/f_pipe/data/documentation/man/man3/f_pipe_debug_exists.3 b/level_0/f_pipe/data/documentation/man/man3/f_pipe_debug_exists.3
new file mode 100644 (file)
index 0000000..b8df9dc
--- /dev/null
@@ -0,0 +1,28 @@
+.TH f_pipe_debug_exists "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_pipe_debug_exists
+.SH SYNOPSIS
+.nf
+.B #include <pipe.h>
+.sp
+\fBf_status_t f_pipe_debug_exists\fP(
+    \fBvoid     \fP\fI\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify whether or not the standard debug pipe source contains piped data.
+.PP
+For most systems, standard debug does not exist and instead maps to standard output.
+.SH RETURN VALUE
+.PP
+\fBF_false\fP if there is no piped data.
+.br
+\fBF_true\fP if there is piped data.
+.br
+\fBF_file_stat\fP (with error bit) on stat() error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_pipe/data/documentation/man/man3/f_pipe_error_exists.3 b/level_0/f_pipe/data/documentation/man/man3/f_pipe_error_exists.3
new file mode 100644 (file)
index 0000000..f24e23c
--- /dev/null
@@ -0,0 +1,26 @@
+.TH f_pipe_error_exists "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_pipe_error_exists
+.SH SYNOPSIS
+.nf
+.B #include <pipe.h>
+.sp
+\fBf_status_t f_pipe_error_exists\fP(
+    \fBvoid     \fP\fI\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify whether or not the standard error pipe source contains piped data.
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if there is piped data.
+.br
+\fBF_false\fP if there is no piped data.
+.br
+\fBF_file_stat\fP (with error bit) on stat() error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_pipe/data/documentation/man/man3/f_pipe_input_exists.3 b/level_0/f_pipe/data/documentation/man/man3/f_pipe_input_exists.3
new file mode 100644 (file)
index 0000000..8b09c77
--- /dev/null
@@ -0,0 +1,26 @@
+.TH f_pipe_input_exists "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_pipe_input_exists
+.SH SYNOPSIS
+.nf
+.B #include <pipe.h>
+.sp
+\fBf_status_t f_pipe_input_exists\fP(
+    \fBvoid     \fP\fI\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provides pipe functionality. Identify whether or not the standard input pipe source contains piped data.
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if there is piped data.
+.br
+\fBF_false\fP if there is no piped data.
+.br
+\fBF_file_stat\fP (with error bit) on stat() error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_pipe/data/documentation/man/man3/f_pipe_warning_exists.3 b/level_0/f_pipe/data/documentation/man/man3/f_pipe_warning_exists.3
new file mode 100644 (file)
index 0000000..85b076b
--- /dev/null
@@ -0,0 +1,28 @@
+.TH f_pipe_warning_exists "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_pipe_warning_exists
+.SH SYNOPSIS
+.nf
+.B #include <pipe.h>
+.sp
+\fBf_status_t f_pipe_warning_exists\fP(
+    \fBvoid     \fP\fI\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify whether or not the standard warning pipe contains piped data.
+.PP
+For most systems, standard warning does not exist and instead maps to standard output.
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if there is piped data.
+.br
+\fBF_false\fP if there is no piped data.
+.br
+\fBF_file_stat\fP (with error bit) on stat() error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 47503786dc535677726a6f20f25127b1c987d376..cdde462e97a331eddbb09fe3d3428324e04f3d0d 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library print.c private-print.c print/common.c print/to.c print/pr
 
 build_sources_headers print.h print/common.h print/to.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_0/f_print/data/documentation/man/man3/f_print.3 b/level_0/f_print/data/documentation/man/man3/f_print.3
new file mode 100644 (file)
index 0000000..c6dfb1d
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_print "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print\fP(
+    \fBconst f_string_t       \fP\fIstring\fP,
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBFILE *const            \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provides some standard printing functions not available in a libc.
+.PP
+Functions provided here are not UTF-8 aware. Similar to a c-library printf, except that this will only print a specific range.
+.PP
+Will not stop at NULL. Will not print NULL. Will print up to length 1-byte characters.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_character.3 b/level_0/f_print/data/documentation/man/man3/f_print_character.3
new file mode 100644 (file)
index 0000000..e24858c
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_print_character "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_character
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_character\fP(
+    \fBconst f_char_t \fP\fIcharacter\fP,
+    \fBFILE *const    \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Given a single 1-byte character, print the character.
+.PP
+This will print NULL characters and is essentially a "raw" print.
+.PP
+This does not call clearerr_unlocked().
+.SH PARAMETERS
+.TP
+.B character
+The character to verify as safe or not and then print.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure (fwrite_unlocked() returns 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_character_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_character_safely.3
new file mode 100644 (file)
index 0000000..c565f7f
--- /dev/null
@@ -0,0 +1,48 @@
+.TH f_print_character_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_character_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_character_safely\fP(
+    \fBconst f_char_t \fP\fIcharacter\fP,
+    \fBFILE *const    \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Given a single 1-byte character, print the character or a replacement if the character is not considered safe.
+.PP
+Control characters are converted to the Unicode control character symbols, including NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'. This can result in the 1-byte character being substituted with a 3-byte character when printing.
+.PP
+For UTF-8 characters, this cannot detect if the UTF-8 character is a control or anything else. This is, in genereal, not safe for printing UTF-8 characters given that a character is 1-byte.
+.PP
+This should only be called for the first 1-byte character of a multibyte character.
+.PP
+This does not call clearerr_unlocked().
+.SH PARAMETERS
+.TP
+.B character
+The character to verify as safe or not and then print.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_utf\fP on success, but character is a UTF-8 character.
+.br
+\fBF_output\fP (with error bit) on failure (fwrite_unlocked() returns 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_character_safely_get.3 b/level_0/f_print/data/documentation/man/man3/f_print_character_safely_get.3
new file mode 100644 (file)
index 0000000..b4c07fd
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_print_character_safely_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_character_safely_get
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBconst f_string_static_t f_print_character_safely_get\fP(
+    \fBconst f_char_t \fP\fIcharacter\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get a safe representation of the character if the character is considered unsafe.
+.PP
+Control characters are converted to the Unicode control character symbols, including NULL. UTF-8 sequences with a width of 1 are converted to the unknown character '�'. For all other UTF-8 sequences (including non-control character ASCII symbols), an empty string is returned.
+.PP
+The returned string will either be an empty string (for characters that are already safe) or a string representing the replacement. This can result in a 3-byte character being returned as a string of 3 1-bytes.
+.PP
+This should only be called for the first 1-byte character of a multibyte character.
+.SH PARAMETERS
+.TP
+.B character
+The character to verify as safe or not and then print.
+
+.SH RETURN VALUE
+.PP
+A string with used length of 0 (an empty string) is returned if the character is already safe or is a UTF-8 character whose width is greater than 1. A string with a non-zero used length is returned if the character needs safe replacement. A string with a non-zero used length is returned are NULL terminated (after the used length).
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_dynamic.3 b/level_0/f_print/data/documentation/man/man3/f_print_dynamic.3
new file mode 100644 (file)
index 0000000..418de8d
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_print_dynamic "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_dynamic
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_dynamic\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this prints a given dynamic string.
+.PP
+Will not stop at NULL. Will not print NULL. Will print up to the length of the buffer.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_dynamic_partial.3 b/level_0/f_print/data/documentation/man/man3/f_print_dynamic_partial.3
new file mode 100644 (file)
index 0000000..bbfbd5f
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_print_dynamic_partial "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_dynamic_partial
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_dynamic_partial\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range in a given dynamic string.
+.PP
+Will not stop at NULL. Will not print NULL. Will print up to the specified range within the buffer.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_dynamic_partial_raw.3 b/level_0/f_print/data/documentation/man/man3/f_print_dynamic_partial_raw.3
new file mode 100644 (file)
index 0000000..e90a8f8
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_print_dynamic_partial_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_dynamic_partial_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_dynamic_partial_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range in a given dynamic string.
+.PP
+Will not stop at NULL. Will print NULL. Will print up to length 1-byte characters.
+.PP
+All UTF-8 characters, invalid or not, are printed as is.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_dynamic_partial_raw_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_dynamic_partial_raw_safely.3
new file mode 100644 (file)
index 0000000..fc371bf
--- /dev/null
@@ -0,0 +1,51 @@
+.TH f_print_dynamic_partial_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_dynamic_partial_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_dynamic_partial_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range in a given dynamic string.
+.PP
+This is essentually a "safe" print that also prints NULL.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will print NULL. Will print up to the specified range within the buffer.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_dynamic_partial_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_dynamic_partial_safely.3
new file mode 100644 (file)
index 0000000..7cc0390
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_print_dynamic_partial_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_dynamic_partial_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_dynamic_partial_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range in a given dynamic string.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will not print NULL. Will print up to the specified range within the buffer.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_dynamic_raw.3 b/level_0/f_print/data/documentation/man/man3/f_print_dynamic_raw.3
new file mode 100644 (file)
index 0000000..3b64ce9
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_print_dynamic_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_dynamic_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_dynamic_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this prints a given dynamic string.
+.PP
+Will not stop at NULL. Will print NULL. Will print up to length 1-byte characters.
+.PP
+All UTF-8 characters, invalid or not, are printed as is.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_dynamic_raw_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_dynamic_raw_safely.3
new file mode 100644 (file)
index 0000000..717d567
--- /dev/null
@@ -0,0 +1,46 @@
+.TH f_print_dynamic_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_dynamic_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_dynamic_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this prints a given dynamic string.
+.PP
+This is essentually a "safe" print that also prints NULL.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will print NULL. Will print up to length 1-byte characters.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_dynamic_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_dynamic_safely.3
new file mode 100644 (file)
index 0000000..d9e5365
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_print_dynamic_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_dynamic_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_dynamic_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this prints a given dynamic string.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will not print NULL. Will print up to length 1-byte characters.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_except.3 b/level_0/f_print/data/documentation/man/man3/f_print_except.3
new file mode 100644 (file)
index 0000000..78c4bf0
--- /dev/null
@@ -0,0 +1,59 @@
+.TH f_print_except "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_except
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_except\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range.
+.PP
+An offset is provided because the except position is expected to be relative to the start position, without the offset applied.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except array. Will print up to length 1-byte characters.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_except_dynamic.3 b/level_0/f_print/data/documentation/man/man3/f_print_except_dynamic.3
new file mode 100644 (file)
index 0000000..1b8aee8
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_print_except_dynamic "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_except_dynamic
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_except_dynamic\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this prints a given dynamic string.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except array. Will print up to the length of the buffer.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_except_dynamic_partial.3 b/level_0/f_print/data/documentation/man/man3/f_print_except_dynamic_partial.3
new file mode 100644 (file)
index 0000000..f30e467
--- /dev/null
@@ -0,0 +1,52 @@
+.TH f_print_except_dynamic_partial "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_except_dynamic_partial
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_except_dynamic_partial\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range in a given dynamic string.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except array. Will print up to the specified range within the buffer.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_except_dynamic_partial_raw.3 b/level_0/f_print/data/documentation/man/man3/f_print_except_dynamic_partial_raw.3
new file mode 100644 (file)
index 0000000..be61a56
--- /dev/null
@@ -0,0 +1,54 @@
+.TH f_print_except_dynamic_partial_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_except_dynamic_partial_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_except_dynamic_partial_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range in a given dynamic string.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except array. Will print up to the specified range within the buffer.
+.PP
+All UTF-8 characters, invalid or not, are printed as is.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_except_dynamic_partial_raw_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_except_dynamic_partial_raw_safely.3
new file mode 100644 (file)
index 0000000..3053f76
--- /dev/null
@@ -0,0 +1,56 @@
+.TH f_print_except_dynamic_partial_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_except_dynamic_partial_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_except_dynamic_partial_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range in a given dynamic string.
+.PP
+This is essentually a "safe" print that also prints NULL.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except array. Will print up to the specified range within the buffer.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_except_dynamic_partial_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_except_dynamic_partial_safely.3
new file mode 100644 (file)
index 0000000..30bb00f
--- /dev/null
@@ -0,0 +1,54 @@
+.TH f_print_except_dynamic_partial_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_except_dynamic_partial_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_except_dynamic_partial_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range in a given dynamic string.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except array. Will print up to the specified range within the buffer.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_except_dynamic_raw.3 b/level_0/f_print/data/documentation/man/man3/f_print_except_dynamic_raw.3
new file mode 100644 (file)
index 0000000..84c6817
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_print_except_dynamic_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_except_dynamic_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_except_dynamic_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this prints a given dynamic string.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except array. Will print up to length 1-byte characters.
+.PP
+All UTF-8 characters, invalid or not, are printed as is.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_except_dynamic_raw_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_except_dynamic_raw_safely.3
new file mode 100644 (file)
index 0000000..00e3262
--- /dev/null
@@ -0,0 +1,51 @@
+.TH f_print_except_dynamic_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_except_dynamic_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_except_dynamic_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this prints a given dynamic string.
+.PP
+This is essentually a "safe" print that also prints NULL.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except array. Will print up to length 1-byte characters.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_except_dynamic_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_except_dynamic_safely.3
new file mode 100644 (file)
index 0000000..c82e564
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_print_except_dynamic_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_except_dynamic_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_except_dynamic_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this prints a given dynamic string.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except array. Will print up to length 1-byte characters.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_except_in.3 b/level_0/f_print/data/documentation/man/man3/f_print_except_in.3
new file mode 100644 (file)
index 0000000..0c14905
--- /dev/null
@@ -0,0 +1,64 @@
+.TH f_print_except_in "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_except_in
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_except_in\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range.
+.PP
+An offset is provided because the except_at/except_in positions are expected to be relative to the start position, without the offset applied.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print up to length 1-byte characters.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_except_in_dynamic.3 b/level_0/f_print/data/documentation/man/man3/f_print_except_in_dynamic.3
new file mode 100644 (file)
index 0000000..567d10c
--- /dev/null
@@ -0,0 +1,52 @@
+.TH f_print_except_in_dynamic "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_except_in_dynamic
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_except_in_dynamic\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this prints a given dynamic string.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print up to the length of the buffer.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_except_in_dynamic_partial.3 b/level_0/f_print/data/documentation/man/man3/f_print_except_in_dynamic_partial.3
new file mode 100644 (file)
index 0000000..2970fd9
--- /dev/null
@@ -0,0 +1,57 @@
+.TH f_print_except_in_dynamic_partial "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_except_in_dynamic_partial
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_except_in_dynamic_partial\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range in a given dynamic string.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print up to the specified range within the buffer.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_except_in_dynamic_partial_raw.3 b/level_0/f_print/data/documentation/man/man3/f_print_except_in_dynamic_partial_raw.3
new file mode 100644 (file)
index 0000000..8d1203b
--- /dev/null
@@ -0,0 +1,59 @@
+.TH f_print_except_in_dynamic_partial_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_except_in_dynamic_partial_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_except_in_dynamic_partial_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range in a given dynamic string.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print up to length 1-byte characters.
+.PP
+All UTF-8 characters, invalid or not, are printed as is.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_except_in_dynamic_partial_raw_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_except_in_dynamic_partial_raw_safely.3
new file mode 100644 (file)
index 0000000..75053c8
--- /dev/null
@@ -0,0 +1,55 @@
+.TH f_print_except_in_dynamic_partial_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_except_in_dynamic_partial_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_except_in_dynamic_partial_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range in a given dynamic string.
+.PP
+This is essentually a "safe" print that also prints NULL.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print up to the specified range within the buffer.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_except_in_dynamic_partial_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_except_in_dynamic_partial_safely.3
new file mode 100644 (file)
index 0000000..26dea3f
--- /dev/null
@@ -0,0 +1,57 @@
+.TH f_print_except_in_dynamic_partial_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_except_in_dynamic_partial_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_except_in_dynamic_partial_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range in a given dynamic string.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print up to the specified range within the buffer.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH PARAMETERS
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_except_in_dynamic_raw.3 b/level_0/f_print/data/documentation/man/man3/f_print_except_in_dynamic_raw.3
new file mode 100644 (file)
index 0000000..9105d3d
--- /dev/null
@@ -0,0 +1,54 @@
+.TH f_print_except_in_dynamic_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_except_in_dynamic_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_except_in_dynamic_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this prints a given dynamic string.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print up to length 1-byte characters.
+.PP
+All UTF-8 characters, invalid or not, are printed as is.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_except_in_dynamic_raw_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_except_in_dynamic_raw_safely.3
new file mode 100644 (file)
index 0000000..da2c162
--- /dev/null
@@ -0,0 +1,56 @@
+.TH f_print_except_in_dynamic_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_except_in_dynamic_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_except_in_dynamic_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this prints a given dynamic string.
+.PP
+This is essentually a "safe" print that also prints NULL.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print up to the length of the buffer.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_except_in_dynamic_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_except_in_dynamic_safely.3
new file mode 100644 (file)
index 0000000..268f8b3
--- /dev/null
@@ -0,0 +1,54 @@
+.TH f_print_except_in_dynamic_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_except_in_dynamic_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_except_in_dynamic_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this prints a given dynamic string.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print up to the length of the buffer.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_except_in_raw.3 b/level_0/f_print/data/documentation/man/man3/f_print_except_in_raw.3
new file mode 100644 (file)
index 0000000..910dec9
--- /dev/null
@@ -0,0 +1,66 @@
+.TH f_print_except_in_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_except_in_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_except_in_raw\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range.
+.PP
+An offset is provided because the except_at/except_in positions are expected to be relative to the start position, without the offset applied.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print up to length 1-byte characters.
+.PP
+All UTF-8 characters, invalid or not, are printed as is.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_except_in_raw_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_except_in_raw_safely.3
new file mode 100644 (file)
index 0000000..54a2b7c
--- /dev/null
@@ -0,0 +1,68 @@
+.TH f_print_except_in_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_except_in_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_except_in_raw_safely\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range.
+.PP
+This is essentually a "safe" print that also prints NULL.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+An offset is provided because the except_at/except_in positions are expected to be relative to the start position, without the offset applied.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print up to length 1-byte characters.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_except_in_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_except_in_safely.3
new file mode 100644 (file)
index 0000000..901ac1b
--- /dev/null
@@ -0,0 +1,66 @@
+.TH f_print_except_in_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_except_in_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_except_in_safely\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+An offset is provided because the except_at/except_in positions are expected to be relative to the start position, without the offset applied.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print up to length 1-byte characters.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_except_raw.3 b/level_0/f_print/data/documentation/man/man3/f_print_except_raw.3
new file mode 100644 (file)
index 0000000..58dd773
--- /dev/null
@@ -0,0 +1,61 @@
+.TH f_print_except_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_except_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_except_raw\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range.
+.PP
+An offset is provided because the except position is expected to be relative to the start position, without the offset applied.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except array. Will print up to length 1-byte characters.
+.PP
+All UTF-8 characters, invalid or not, are printed as is.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_except_raw_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_except_raw_safely.3
new file mode 100644 (file)
index 0000000..fb4c620
--- /dev/null
@@ -0,0 +1,61 @@
+.TH f_print_except_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_except_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_except_raw_safely\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range.
+.PP
+This is essentually a "safe" print that also prints NULL.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except array. Will print up to length 1-byte characters.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_except_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_except_safely.3
new file mode 100644 (file)
index 0000000..82c546a
--- /dev/null
@@ -0,0 +1,59 @@
+.TH f_print_except_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_except_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_except_safely\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except array. Will print up to length 1-byte characters.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_raw.3 b/level_0/f_print/data/documentation/man/man3/f_print_raw.3
new file mode 100644 (file)
index 0000000..d40c3bd
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_print_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_raw\fP(
+    \fBconst f_string_t       \fP\fIstring\fP,
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBFILE *const            \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range.
+.PP
+Will not stop at NULL. Will print NULL. Will print up to length 1-byte characters.
+.PP
+All UTF-8 characters, invalid or not, are printed as is.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_raw_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_raw_safely.3
new file mode 100644 (file)
index 0000000..66b30cf
--- /dev/null
@@ -0,0 +1,51 @@
+.TH f_print_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_raw_safely\fP(
+    \fBconst f_string_t       \fP\fIstring\fP,
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBFILE *const            \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range.
+.PP
+This is essentually a "safe" print that also prints NULL.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will print NULL. Will print up to length 1-byte characters.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_raw_terminated.3 b/level_0/f_print/data/documentation/man/man3/f_print_raw_terminated.3
new file mode 100644 (file)
index 0000000..bb32be4
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_print_raw_terminated "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_raw_terminated
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_raw_terminated\fP(
+    \fBconst f_string_t \fP\fIstring\fP,
+    \fBFILE *const      \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf.
+.PP
+Will stop at NULL. Will not print NULL. Will print up to length 1-byte characters.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_safely.3
new file mode 100644 (file)
index 0000000..84322cc
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_print_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_safely\fP(
+    \fBconst f_string_t       \fP\fIstring\fP,
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBFILE *const            \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will not print NULL. Will print up to length 1-byte characters.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_safely_get.3 b/level_0/f_print/data/documentation/man/man3/f_print_safely_get.3
new file mode 100644 (file)
index 0000000..c930487
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_print_safely_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_safely_get
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBconst f_string_static_t f_print_safely_get\fP(
+    \fBconst f_string_t       \fP\fIcharacter\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get a safe representation of the character if the character is considered unsafe.
+.PP
+Control characters are converted to the Unicode control character symbols, including NULL. UTF-8 sequences with a width of 1 are converted to the unknown character '�'. For all other UTF-8 sequences, an empty string is returned.
+.PP
+The returned string will either be an empty string (for characters that are already safe) or a string representing the replacement. This can result in a 3-byte character being returned as a string of 3 1-bytes.
+.PP
+This should only be called for the first 1-byte character of a multibyte character.
+.SH PARAMETERS
+.TP
+.B character
+The character to verify as safe or not and then print.
+
+.TP
+.B width_max
+This is set to the max number of bytes available. This is then updated to represent the max bytes used if enough space is available.
+
+.SH RETURN VALUE
+.PP
+A string with used length of 0 (an empty string) is returned if the character is already safe or is a UTF-8 character whose width is greater than 1. A string with a non-zero used length is returned if the character needs safe replacement. A string with a non-zero used length is returned are NULL terminated (after the used length).
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_safely_terminated.3 b/level_0/f_print/data/documentation/man/man3/f_print_safely_terminated.3
new file mode 100644 (file)
index 0000000..03be79c
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_print_safely_terminated "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_safely_terminated
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_safely_terminated\fP(
+    \fBconst f_string_t \fP\fIstring\fP,
+    \fBFILE *const      \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will stop at NULL. Will not print NULL (even as a control character symbol). Will print up to length 1-byte characters.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_terminated.3 b/level_0/f_print/data/documentation/man/man3/f_print_terminated.3
new file mode 100644 (file)
index 0000000..71df009
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_print_terminated "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_terminated
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t f_print_terminated\fP(
+    \fBconst f_string_t \fP\fIstring\fP,
+    \fBFILE *const      \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf.
+.PP
+Will stop at NULL. Will not print NULL. Will print up to length 1-byte characters.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on failure.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to.3 b/level_0/f_print/data/documentation/man/man3/f_print_to.3
new file mode 100644 (file)
index 0000000..d357386
--- /dev/null
@@ -0,0 +1,71 @@
+.TH f_print_to "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to\fP(
+    \fBconst f_string_t       \fP\fIstring\fP,
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBconst int              \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library dprintf, except that this will only print a specific range.
+.PP
+Will not stop at NULL. Will not print NULL. Will print up to length 1-byte characters.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_character.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_character.3
new file mode 100644 (file)
index 0000000..8d0743b
--- /dev/null
@@ -0,0 +1,64 @@
+.TH f_print_to_character "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_character
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_character\fP(
+    \fBconst f_char_t \fP\fIcharacter\fP,
+    \fBconst int      \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Given a single 1-byte character, print the character.
+.PP
+This will print NULL characters and is essentially a "raw" print.
+.SH PARAMETERS
+.TP
+.B character
+The character to verify as safe or not and then print.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_character_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_character_safely.3
new file mode 100644 (file)
index 0000000..af116c9
--- /dev/null
@@ -0,0 +1,66 @@
+.TH f_print_to_character_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_character_safely
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_character_safely\fP(
+    \fBconst f_char_t \fP\fIcharacter\fP,
+    \fBconst int      \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Given a single 1-byte character, print the character or a replacement if the character is not considered safe.
+.PP
+Control characters are converted to the Unicode control character symbols, including NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'. This can result in the 1-byte character being substituted with a 3-byte character when printing.
+.PP
+This should only be called for the first 1-byte character of a multibyte character.
+.SH PARAMETERS
+.TP
+.B character
+The character to verify as safe or not and then print.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_dynamic.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_dynamic.3
new file mode 100644 (file)
index 0000000..9a6cd3b
--- /dev/null
@@ -0,0 +1,64 @@
+.TH f_print_to_dynamic "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_dynamic
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_dynamic\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library dprintf, except that this prints a given dynamic string.
+.PP
+Will not stop at NULL. Will not print NULL. Will print up to the length of the buffer.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_dynamic_partial.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_dynamic_partial.3
new file mode 100644 (file)
index 0000000..1966698
--- /dev/null
@@ -0,0 +1,69 @@
+.TH f_print_to_dynamic_partial "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_dynamic_partial
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_dynamic_partial\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library dprintf, except that this will only print a specific range in a given dynamic string.
+.PP
+Will not stop at NULL. Will not print NULL. Will print up to the specified range within the buffer.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_dynamic_partial_raw.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_dynamic_partial_raw.3
new file mode 100644 (file)
index 0000000..266b588
--- /dev/null
@@ -0,0 +1,71 @@
+.TH f_print_to_dynamic_partial_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_dynamic_partial_raw
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_dynamic_partial_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library dprintf, except that this will only print a specific range in a given dynamic string.
+.PP
+Will not stop at NULL. Will print NULL. Will print up to the specified range within the buffer.
+.PP
+All UTF-8 characters, invalid or not, are printed as is.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_dynamic_partial_raw_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_dynamic_partial_raw_safely.3
new file mode 100644 (file)
index 0000000..5ed52ee
--- /dev/null
@@ -0,0 +1,75 @@
+.TH f_print_to_dynamic_partial_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_dynamic_partial_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_dynamic_partial_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range in a given dynamic string.
+.PP
+This is essentually a "safe" print that also prints NULL.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will print NULL. Will print up to the specified range within the buffer.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_dynamic_partial_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_dynamic_partial_safely.3
new file mode 100644 (file)
index 0000000..29df3e7
--- /dev/null
@@ -0,0 +1,71 @@
+.TH f_print_to_dynamic_partial_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_dynamic_partial_safely
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_dynamic_partial_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library dprintf, except that this will only print a specific range in a given dynamic string.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will not print NULL. Will print up to length 1-byte characters.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_dynamic_raw.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_dynamic_raw.3
new file mode 100644 (file)
index 0000000..aa22b05
--- /dev/null
@@ -0,0 +1,66 @@
+.TH f_print_to_dynamic_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_dynamic_raw
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_dynamic_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library dprintf, except that this prints a given dynamic string.
+.PP
+Will not stop at NULL. Will print NULL. Will print up to length 1-byte characters.
+.PP
+All UTF-8 characters, invalid or not, are printed as is.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_dynamic_raw_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_dynamic_raw_safely.3
new file mode 100644 (file)
index 0000000..f8a653e
--- /dev/null
@@ -0,0 +1,70 @@
+.TH f_print_to_dynamic_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_dynamic_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_dynamic_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this prints a given dynamic string.
+.PP
+This is essentually a "safe" print that also prints NULL.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will print NULL. Will print up to length 1-byte characters.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_dynamic_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_dynamic_safely.3
new file mode 100644 (file)
index 0000000..1dd6235
--- /dev/null
@@ -0,0 +1,66 @@
+.TH f_print_to_dynamic_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_dynamic_safely
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_dynamic_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library dprintf, except that this prints a given dynamic string.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will not print NULL. Will print up to length 1-byte characters.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_except.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_except.3
new file mode 100644 (file)
index 0000000..ade028d
--- /dev/null
@@ -0,0 +1,79 @@
+.TH f_print_to_except "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_except
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_except\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library dprintf, except that this will only print a specific range.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except array. Will print up to length 1-byte characters.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_except_dynamic.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_except_dynamic.3
new file mode 100644 (file)
index 0000000..34651f6
--- /dev/null
@@ -0,0 +1,69 @@
+.TH f_print_to_except_dynamic "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_except_dynamic
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_except_dynamic\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library dprintf, except that this prints a given dynamic string.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except array. Will print up to the length of the buffer.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_except_dynamic_partial.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_except_dynamic_partial.3
new file mode 100644 (file)
index 0000000..2c04ed1
--- /dev/null
@@ -0,0 +1,74 @@
+.TH f_print_to_except_dynamic_partial "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_except_dynamic_partial
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_except_dynamic_partial\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library dprintf, except that this will only print a specific range in a given dynamic string.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except array. Will print up to the specified range within the buffer.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_except_dynamic_partial_raw.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_except_dynamic_partial_raw.3
new file mode 100644 (file)
index 0000000..b6bacf2
--- /dev/null
@@ -0,0 +1,76 @@
+.TH f_print_to_except_dynamic_partial_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_except_dynamic_partial_raw
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_except_dynamic_partial_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library dprintf, except that this will only print a specific range in a given dynamic string.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except array. Will print up to the specified range within the buffer.
+.PP
+All UTF-8 characters, invalid or not, are printed as is.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_except_dynamic_partial_raw_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_except_dynamic_partial_raw_safely.3
new file mode 100644 (file)
index 0000000..d1d7c8a
--- /dev/null
@@ -0,0 +1,80 @@
+.TH f_print_to_except_dynamic_partial_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_except_dynamic_partial_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_except_dynamic_partial_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range in a given dynamic string.
+.PP
+This is essentually a "safe" print that also prints NULL.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except array. Will print up to the specified range within the buffer.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_except_dynamic_partial_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_except_dynamic_partial_safely.3
new file mode 100644 (file)
index 0000000..b8d43bb
--- /dev/null
@@ -0,0 +1,76 @@
+.TH f_print_to_except_dynamic_partial_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_except_dynamic_partial_safely
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_except_dynamic_partial_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library dprintf, except that this will only print a specific range in a given dynamic string.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except array. Will print up to the specified range within the buffer.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_except_dynamic_raw.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_except_dynamic_raw.3
new file mode 100644 (file)
index 0000000..45db0bb
--- /dev/null
@@ -0,0 +1,71 @@
+.TH f_print_to_except_dynamic_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_except_dynamic_raw
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_except_dynamic_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library dprintf, except that this prints a given dynamic string.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except array. Will print up to the length of the buffer.
+.PP
+All UTF-8 characters, invalid or not, are printed as is.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_except_dynamic_raw_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_except_dynamic_raw_safely.3
new file mode 100644 (file)
index 0000000..c95c6ed
--- /dev/null
@@ -0,0 +1,75 @@
+.TH f_print_to_except_dynamic_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_except_dynamic_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_except_dynamic_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this prints a given dynamic string.
+.PP
+This is essentually a "safe" print that also prints NULL.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except array. Will print up to length 1-byte characters.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_except_dynamic_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_except_dynamic_safely.3
new file mode 100644 (file)
index 0000000..88115ec
--- /dev/null
@@ -0,0 +1,71 @@
+.TH f_print_to_except_dynamic_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_except_dynamic_safely
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_except_dynamic_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library dprintf, except that this prints a given dynamic string.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except array. Will print up to the length of the buffer.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_except_in.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_except_in.3
new file mode 100644 (file)
index 0000000..baf1c05
--- /dev/null
@@ -0,0 +1,88 @@
+.TH f_print_to_except_in "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_except_in
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_except_in\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range.
+.PP
+An offset is provided because the except_at/except_in positions are expected to be relative to the start position, without the offset applied.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print up to length 1-byte characters.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_except_in_dynamic.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_except_in_dynamic.3
new file mode 100644 (file)
index 0000000..b117c69
--- /dev/null
@@ -0,0 +1,76 @@
+.TH f_print_to_except_in_dynamic "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_except_in_dynamic
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_except_in_dynamic\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this prints a given dynamic string.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print up to the length of the buffer.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_except_in_dynamic_partial.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_except_in_dynamic_partial.3
new file mode 100644 (file)
index 0000000..060f031
--- /dev/null
@@ -0,0 +1,81 @@
+.TH f_print_to_except_in_dynamic_partial "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_except_in_dynamic_partial
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_except_in_dynamic_partial\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range in a given dynamic string.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print up to the specified range within the buffer.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_except_in_dynamic_partial_raw.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_except_in_dynamic_partial_raw.3
new file mode 100644 (file)
index 0000000..16c29f6
--- /dev/null
@@ -0,0 +1,83 @@
+.TH f_print_to_except_in_dynamic_partial_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_except_in_dynamic_partial_raw
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_except_in_dynamic_partial_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range in a given dynamic string.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print up to length 1-byte characters.
+.PP
+All UTF-8 characters, invalid or not, are printed as is.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_except_in_dynamic_partial_raw_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_except_in_dynamic_partial_raw_safely.3
new file mode 100644 (file)
index 0000000..07d7268
--- /dev/null
@@ -0,0 +1,83 @@
+.TH f_print_to_except_in_dynamic_partial_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_except_in_dynamic_partial_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_except_in_dynamic_partial_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range in a given dynamic string.
+.PP
+This is essentually a "safe" print that also prints NULL.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print up to the specified range within the buffer.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_except_in_dynamic_partial_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_except_in_dynamic_partial_safely.3
new file mode 100644 (file)
index 0000000..8846ef0
--- /dev/null
@@ -0,0 +1,81 @@
+.TH f_print_to_except_in_dynamic_partial_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_except_in_dynamic_partial_safely
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_except_in_dynamic_partial_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range in a given dynamic string.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print up to the specified range within the buffer.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_except_in_dynamic_raw.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_except_in_dynamic_raw.3
new file mode 100644 (file)
index 0000000..5984f10
--- /dev/null
@@ -0,0 +1,78 @@
+.TH f_print_to_except_in_dynamic_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_except_in_dynamic_raw
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_except_in_dynamic_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this prints a given dynamic string.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print up to length 1-byte characters.
+.PP
+All UTF-8 characters, invalid or not, are printed as is.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_except_in_dynamic_raw_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_except_in_dynamic_raw_safely.3
new file mode 100644 (file)
index 0000000..94e30d5
--- /dev/null
@@ -0,0 +1,80 @@
+.TH f_print_to_except_in_dynamic_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_except_in_dynamic_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_except_in_dynamic_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this prints a given dynamic string.
+.PP
+This is essentually a "safe" print that also prints NULL.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print up to the length of the buffer.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_except_in_dynamic_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_except_in_dynamic_safely.3
new file mode 100644 (file)
index 0000000..0db5bd0
--- /dev/null
@@ -0,0 +1,78 @@
+.TH f_print_to_except_in_dynamic_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_except_in_dynamic_safely
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_except_in_dynamic_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this prints a given dynamic string.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print up to the length of the buffer.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_except_in_raw.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_except_in_raw.3
new file mode 100644 (file)
index 0000000..3d25975
--- /dev/null
@@ -0,0 +1,90 @@
+.TH f_print_to_except_in_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_except_in_raw
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_except_in_raw\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range.
+.PP
+An offset is provided because the except_at/except_in positions are expected to be relative to the start position, without the offset applied.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print up to length 1-byte characters.
+.PP
+All UTF-8 characters, invalid or not, are printed as is.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_except_in_raw_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_except_in_raw_safely.3
new file mode 100644 (file)
index 0000000..269807b
--- /dev/null
@@ -0,0 +1,92 @@
+.TH f_print_to_except_in_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_except_in_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_except_in_raw_safely\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range.
+.PP
+This is essentually a "safe" print that also prints NULL.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+An offset is provided because the except_at/except_in positions are expected to be relative to the start position, without the offset applied.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print up to length 1-byte characters.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_except_in_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_except_in_safely.3
new file mode 100644 (file)
index 0000000..9fd7640
--- /dev/null
@@ -0,0 +1,90 @@
+.TH f_print_to_except_in_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_except_in_safely
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_except_in_safely\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+An offset is provided because the except_at/except_in positions are expected to be relative to the start position, without the offset applied.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print up to length 1-byte characters.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_except_raw.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_except_raw.3
new file mode 100644 (file)
index 0000000..ec3c944
--- /dev/null
@@ -0,0 +1,81 @@
+.TH f_print_to_except_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_except_raw
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_except_raw\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library dprintf, except that this will only print a specific range.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except array. Will print up to length 1-byte characters.
+.PP
+All UTF-8 characters, invalid or not, are printed as is.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_except_raw_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_except_raw_safely.3
new file mode 100644 (file)
index 0000000..2c3acf7
--- /dev/null
@@ -0,0 +1,85 @@
+.TH f_print_to_except_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_except_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_except_raw_safely\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range.
+.PP
+This is essentually a "safe" print that also prints NULL.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except array. Will print up to length 1-byte characters.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_except_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_except_safely.3
new file mode 100644 (file)
index 0000000..2665181
--- /dev/null
@@ -0,0 +1,81 @@
+.TH f_print_to_except_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_except_safely
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_except_safely\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBconst int               \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library dprintf, except that this will only print a specific range.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except array. Will print up to length 1-byte characters.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_raw.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_raw.3
new file mode 100644 (file)
index 0000000..08c23fd
--- /dev/null
@@ -0,0 +1,71 @@
+.TH f_print_to_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_raw
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_raw\fP(
+    \fBconst f_string_t       \fP\fIstring\fP,
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBconst int              \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library dprintf, except that this will only print a specific range.
+.PP
+Will not stop at NULL. Will print NULL. Will print up to length 1-byte characters.
+.PP
+All UTF-8 characters, invalid or not, are printed as is.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_raw_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_raw_safely.3
new file mode 100644 (file)
index 0000000..edc9d25
--- /dev/null
@@ -0,0 +1,75 @@
+.TH f_print_to_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_raw_safely\fP(
+    \fBconst f_string_t       \fP\fIstring\fP,
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBconst int              \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf, except that this will only print a specific range.
+.PP
+This is essentually a "safe" print that also prints NULL.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will print NULL. Will print up to length 1-byte characters.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_raw_terminated.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_raw_terminated.3
new file mode 100644 (file)
index 0000000..1355e2f
--- /dev/null
@@ -0,0 +1,66 @@
+.TH f_print_to_raw_terminated "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_raw_terminated
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_raw_terminated\fP(
+    \fBconst f_string_t \fP\fIstring\fP,
+    \fBconst int        \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf.
+.PP
+Will stop at NULL. Will not print NULL. Will print up to length 1-byte characters.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_safely.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_safely.3
new file mode 100644 (file)
index 0000000..5bd1382
--- /dev/null
@@ -0,0 +1,71 @@
+.TH f_print_to_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_safely
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_safely\fP(
+    \fBconst f_string_t       \fP\fIstring\fP,
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBconst int              \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library dprintf, except that this will only print a specific range.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will not print NULL. Will print up to length 1-byte characters.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_safely_terminated.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_safely_terminated.3
new file mode 100644 (file)
index 0000000..4e0d6d7
--- /dev/null
@@ -0,0 +1,68 @@
+.TH f_print_to_safely_terminated "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_safely_terminated
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_safely_terminated\fP(
+    \fBconst f_string_t \fP\fIstring\fP,
+    \fBconst int        \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will stop at NULL. Will not print NULL (even as a control character symbol).
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_print/data/documentation/man/man3/f_print_to_terminated.3 b/level_0/f_print/data/documentation/man/man3/f_print_to_terminated.3
new file mode 100644 (file)
index 0000000..97ef048
--- /dev/null
@@ -0,0 +1,66 @@
+.TH f_print_to_terminated "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_print_to_terminated
+.SH SYNOPSIS
+.nf
+.B #include <to.h>
+.sp
+\fBf_status_t f_print_to_terminated\fP(
+    \fBconst f_string_t \fP\fIstring\fP,
+    \fBconst int        \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Similar to a c-library printf.
+.PP
+Will stop at NULL. Will not print NULL.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B id
+The file descriptor to output to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if there is nothing to print.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if quota is reached or exceeded.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_number_overflow\fP (with error bit) if maximum size reached while writing or attempting to write beyond maximum allowed offset.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if a connected pipe or socket is closed.
+.br
+\fBF_space_not\fP (with error bit) cannot write, out of space.
+.br
+\fBF_socket_not\fP (with error bit) if socket is not connected.
+.br
+\fBF_output\fP (with error bit) on any other failure.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index cde085f50f8099c0b34cc433a2e2fe926be25338..11fb081a7e6b6819c1ece386b48bbd0328dbd472 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library serialize.c private-serialize.c serialize/common.c
 
 build_sources_headers serialize.h serialize/common.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_0/f_serialize/data/documentation/man/man3/f_serialize_from_simple.3 b/level_0/f_serialize/data/documentation/man/man3/f_serialize_from_simple.3
new file mode 100644 (file)
index 0000000..bdf1d0f
--- /dev/null
@@ -0,0 +1,45 @@
+.TH f_serialize_from_simple "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_serialize_from_simple
+.SH SYNOPSIS
+.nf
+.B #include <serialize.h>
+.sp
+\fBf_status_t f_serialize_from_simple\fP(
+    \fBconst f_string_static_t    \fP\fIsource\fP,
+    \fBf_string_dynamics_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+A string that is analogous to f_string_dynamic_t but intended for static-only uses.
+.PP
+The f_string_static_t type should never be directly allocated or deallocated.
+.PP
+A special macro_f_string_static_t_initialize() is provided for the special purpose of easily initialize a static string. A special macro_f_string_static_t_initialize2() is provided for the special purpose of easily initialize a static string with an identical used and size.
+.PP
+string: The string. size: Total amount of space available. used: Total number of space used.
+.sp
+.RS
+.nf
+\fB
+struct f_string_static_t {
+  f_string_t       \fIstring\fP;
+  f_array_length_t \fIsize\fP;
+  f_array_length_t \fIused\fP;
+};
+\fP
+.fi
+.RE
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_complete_not_utf_eos\fP if an incomplete UTF-8 character is found at the end of the source.
+.br
+\fBF_data_not\fP on success and source.used is 0.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_serialize/data/documentation/man/man3/f_serialize_from_simple_get.3 b/level_0/f_serialize/data/documentation/man/man3/f_serialize_from_simple_get.3
new file mode 100644 (file)
index 0000000..937ef73
--- /dev/null
@@ -0,0 +1,53 @@
+.TH f_serialize_from_simple_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_serialize_from_simple_get
+.SH SYNOPSIS
+.nf
+.B #include <serialize.h>
+.sp
+\fBf_status_t f_serialize_from_simple_get\fP(
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBconst f_array_length_t    \fP\fIindex\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Unserialize and get a copy of a specific string using the Simple serialize algorithm.
+.PP
+The simple Serialize algorithm is akin to the PATH environment variable, example: PATH="/bin:/sbin:/usr/bin".
+.PP
+After processing the above example, there would be the following positions, for the given index: 1) with index = 0, start = 0, stop = 3. 2) with index = 1, start = 5, stop = 9. 3) with index = 2, start = 11, stop = 18.
+.SH PARAMETERS
+.TP
+.B source
+A serialized string to deserialize.
+
+.TP
+.B index
+The selected position within the serialize string to get the deserialize positions of.
+
+.TP
+.B destination
+The deserialized string from the specified index. This string is NULL terminated after destination.used on success.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success at end of string.
+.br
+\fBF_data_not_eos\fP if end of string reached before index was reached (dynamic->used is set to 0).
+.br
+\fBF_data_not\fP on success and source.used is 0.
+.br
+\fBF_complete_not_utf_eos\fP (with error bit) if end of string is reached before a complete UTF-8 character can be processed.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_serialize/data/documentation/man/man3/f_serialize_from_simple_range.3 b/level_0/f_serialize/data/documentation/man/man3/f_serialize_from_simple_range.3
new file mode 100644 (file)
index 0000000..cd73cc7
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_serialize_from_simple_range "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_serialize_from_simple_range
+.SH SYNOPSIS
+.nf
+.B #include <serialize.h>
+.sp
+\fBf_status_t f_serialize_from_simple_range\fP(
+    \fBconst f_string_static_t  \fP\fIsource\fP,
+    \fBf_string_ranges_t *const \fP\fIranges\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify string positions within a serialize string using the Simple serialize algorithm.
+.PP
+The simple Serialize algorithm is akin to the PATH environment variable, example: PATH="/bin:/sbin:/usr/bin".
+.PP
+After processing the above example, there would be the following positions: 1) start = 0, stop = 3. 2) start = 5, stop = 9. 3) start = 11, stop = 18.
+.SH PARAMETERS
+.TP
+.B source
+A serialized string to deserialize.
+
+.TP
+.B ranges
+The ranges within the serialize string representing distinct separate strings. All deserialized ranges are appended to the destination.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_complete_not_utf_eos\fP if an incomplete UTF-8 character is found at the end of the source.
+.br
+\fBF_data_not\fP on success and source.used is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_ranges_increase()
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_serialize/data/documentation/man/man3/f_serialize_from_simple_select.3 b/level_0/f_serialize/data/documentation/man/man3/f_serialize_from_simple_select.3
new file mode 100644 (file)
index 0000000..04b45ea
--- /dev/null
@@ -0,0 +1,51 @@
+.TH f_serialize_from_simple_select "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_serialize_from_simple_select
+.SH SYNOPSIS
+.nf
+.B #include <serialize.h>
+.sp
+\fBf_status_t f_serialize_from_simple_select\fP(
+    \fBconst f_string_static_t \fP\fIsource\fP,
+    \fBconst f_array_length_t  \fP\fIindex\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Deserialize and select the address for a specific string using the Simple serialize algorithm.
+.PP
+The simple serialize algorithm is akin to the PATH environment variable, example: PATH="/bin:/sbin:/usr/bin".
+.PP
+After processing the above example, there would be the following positions, for the given index: 1) with index = 0, start = 0, stop = 3. 2) with index = 1, start = 5, stop = 9. 3) with index = 2, start = 11, stop = 18.
+.SH PARAMETERS
+.TP
+.B source
+A serialized string to deserialize.
+
+.TP
+.B index
+An index position within the serialize string to get the deserialize positions of.
+
+.TP
+.B range
+A range within the serialized string representing the string at the given index.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success at end of string.
+.br
+\fBF_data_not\fP on success and source.used is 0.
+.br
+\fBF_data_not_eos\fP if end of string reached before index was reached.
+.br
+\fBF_complete_not_utf_eos\fP (with error bit) if end of string is reached before a complete UTF-8 character can be processed.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_serialize/data/documentation/man/man3/f_serialize_to_simple.3 b/level_0/f_serialize/data/documentation/man/man3/f_serialize_to_simple.3
new file mode 100644 (file)
index 0000000..75ed66c
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_serialize_to_simple "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_serialize_to_simple
+.SH SYNOPSIS
+.nf
+.B #include <serialize.h>
+.sp
+\fBf_status_t f_serialize_to_simple\fP(
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Serialized a string using the Simple serialize algorithm.
+.PP
+The simple Serialize algorithm is akin to the PATH environment variable, example: PATH="/bin:/sbin:/usr/bin".
+.PP
+To generate the above example, this would be called 3 times, with the following strings: 1) value = "/bin", then: PATH="/bin". 2) value = "/sbin", then: PATH="/bin:/sbin". 3) value = "/usr/sbin", then: PATH="/bin:/sbin:/usr/sbin".
+.SH PARAMETERS
+.TP
+.B source
+The string to append onto serialize.
+
+.TP
+.B destination
+The dynamic string that to store the serialized string. This string will be NULL terminated after destination.used on success. All serialized values are appended to the destination.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success and source.used is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_append();
+.br
+Errors (with error bit) from: f_string_dynamic_append_assure();
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 10d3da7ac5252fa909754bc40efc060ab93d9755..6d817c0085b89adeecd9b504e8b188cb330f5061 100644 (file)
@@ -35,6 +35,8 @@ build_sources_library signal.c
 
 build_sources_headers signal.h signal/common.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_0/f_signal/data/documentation/man/man3/f_signal_action.3 b/level_0/f_signal/data/documentation/man/man3/f_signal_action.3
new file mode 100644 (file)
index 0000000..3928508
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_signal_action "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_signal_action
+.SH SYNOPSIS
+.nf
+.B #include <signal.h>
+.sp
+\fBf_status_t f_signal_action\fP(
+    \fBconst f_signal_t              \fP\fIsignal\fP,
+    \fBconst struct sigaction *const \fP\fIaction\fP,
+    \fBstruct sigaction             *\fP\fIprevious\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This holds a signal type.
+.PP
+flags: The signal flags associated with this. id: The signal descriptor. set: The signal set.
+.sp
+.RS
+.nf
+\fB
+struct f_signal_t {
+  int      \fIflags\fP;
+  int      \fIid\fP;
+  sigset_t \fIset\fP;
+};
+\fP
+.fi
+.RE
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success but no signal found.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_signal/data/documentation/man/man3/f_signal_close.3 b/level_0/f_signal/data/documentation/man/man3/f_signal_close.3
new file mode 100644 (file)
index 0000000..583b3d3
--- /dev/null
@@ -0,0 +1,43 @@
+.TH f_signal_close "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_signal_close
+.SH SYNOPSIS
+.nf
+.B #include <signal.h>
+.sp
+\fBf_status_t f_signal_close\fP(
+    \fBf_signal_t *const \fP\fIsignal\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Close an open signal descriptor.
+.PP
+The signal.id is set to 0 on success.
+.SH PARAMETERS
+.TP
+.B signal
+The signal settings.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but no descriptor was provided to close.
+.br
+\fBF_descriptor\fP (with error bit) if id is an invalid descriptor.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_input_output\fP (with error bit) if an I/O error occurred.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_signal/data/documentation/man/man3/f_signal_mask.3 b/level_0/f_signal/data/documentation/man/man3/f_signal_mask.3
new file mode 100644 (file)
index 0000000..edb0b7e
--- /dev/null
@@ -0,0 +1,43 @@
+.TH f_signal_mask "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_signal_mask
+.SH SYNOPSIS
+.nf
+.B #include <signal.h>
+.sp
+\fBf_status_t f_signal_mask\fP(
+    \fBconst int             \fP\fIhow\fP,
+    \fBconst sigset_t *const \fP\fInext\fP,
+    \fBsigset_t *const       \fP\fIcurrent\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get or assign the current signal set in use.
+.PP
+Either set or previous may be NULL but not both (at least one is required).
+.SH PARAMETERS
+.TP
+.B how
+How to handle the signal. Set this to 0 when only trying to get the current signal set.
+
+.TP
+.B next
+(optional) The new set of signals to handle. Set to NULL to not use.
+
+.TP
+.B current
+(optional) The current set of signals being handled. Set to NULL to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success but no signal found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_signal/data/documentation/man/man3/f_signal_open.3 b/level_0/f_signal/data/documentation/man/man3/f_signal_open.3
new file mode 100644 (file)
index 0000000..46129d5
--- /dev/null
@@ -0,0 +1,41 @@
+.TH f_signal_open "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_signal_open
+.SH SYNOPSIS
+.nf
+.B #include <signal.h>
+.sp
+\fBf_status_t f_signal_open\fP(
+    \fBf_signal_t *const \fP\fIsignal\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Open a signal descriptor, listening for the given set of signals.
+.PP
+The signal.id is assigned with the signal descriptor on success.
+.PP
+If signal.id is -1, then a new file descriptor is created. Otherwise, signal.id is used as the file descriptor.
+.SH PARAMETERS
+.TP
+.B signal
+The signal settings.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success but no signal found.
+.br
+\fBF_device\fP (with error bit) if could not mount the internal inode device.
+.br
+\fBF_file_descriptor_max\fP (with error bit) if max file descriptors is reached.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_signal/data/documentation/man/man3/f_signal_pause.3 b/level_0/f_signal/data/documentation/man/man3/f_signal_pause.3
new file mode 100644 (file)
index 0000000..44fb229
--- /dev/null
@@ -0,0 +1,22 @@
+.TH f_signal_pause "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_signal_pause
+.SH SYNOPSIS
+.nf
+.B #include <signal.h>
+.sp
+\fBf_status_t f_signal_pause\fP(
+    \fBvoid     \fP\fI\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Pause the current process until a signal is received.
+.SH RETURN VALUE
+.PP
+The received signal.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_signal/data/documentation/man/man3/f_signal_queue.3 b/level_0/f_signal/data/documentation/man/man3/f_signal_queue.3
new file mode 100644 (file)
index 0000000..8371388
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_signal_queue "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_signal_queue
+.SH SYNOPSIS
+.nf
+.B #include <signal.h>
+.sp
+\fBf_status_t f_signal_queue\fP(
+    \fBconst pid_t        \fP\fIid\fP,
+    \fBconst int          \fP\fIsignal\fP,
+    \fBconst union sigval \fP\fIvalue\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Send the signal and value to the given process.
+.SH PARAMETERS
+.TP
+.B id
+The PID to signal.
+
+.TP
+.B signal
+The signal to send to the thread.
+
+.TP
+.B value
+The signal value to send.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success but no signal found.
+.br
+\fBF_found_not\fP (with error bit) if the given PID was found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_resource_not\fP (with error bit) if the max signals is reached.
+.br
+\fBF_supported_not\fP (with error bit) if this action is not supported by the current OS.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_signal/data/documentation/man/man3/f_signal_read.3 b/level_0/f_signal/data/documentation/man/man3/f_signal_read.3
new file mode 100644 (file)
index 0000000..65c9484
--- /dev/null
@@ -0,0 +1,63 @@
+.TH f_signal_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_signal_read
+.SH SYNOPSIS
+.nf
+.B #include <signal.h>
+.sp
+\fBf_status_t f_signal_read\fP(
+    \fBconst f_signal_t               \fP\fIsignal\fP,
+    \fBconst int                      \fP\fItimeout\fP,
+    \fBstruct signalfd_siginfo *const \fP\fIinformation\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Read a current process signal, if one exists.
+.SH PARAMETERS
+.TP
+.B signal
+The signal settings.
+
+.TP
+.B timeout
+Block for the number of milliseconds, waiting for a signal. A value of 0 means that this will not block.
+
+.TP
+.B information
+The signal data to be populated if a signal is found during read.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success but no signal found.
+.br
+\fBF_data_not\fP on success, but no descriptor was provided to read.
+.br
+\fBF_signal\fP on success and signal found.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the read would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_descriptor\fP (with error bit) if the signal descriptor is invalid.
+.br
+\fBF_file_closed\fP (with error bit) if the signal descriptor stream is closed.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_stream\fP (with error bit) when the poll() returns POLLERR (file stream error).
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_signal/data/documentation/man/man3/f_signal_send.3 b/level_0/f_signal/data/documentation/man/man3/f_signal_send.3
new file mode 100644 (file)
index 0000000..d188421
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_signal_send "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_signal_send
+.SH SYNOPSIS
+.nf
+.B #include <signal.h>
+.sp
+\fBf_status_t f_signal_send\fP(
+    \fBconst int   \fP\fIsignal\fP,
+    \fBconst pid_t \fP\fIprocess_id\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Send a signal to a process.
+.SH PARAMETERS
+.TP
+.B signal
+The signal to send
+
+.TP
+.B process_id
+The process id (PID) that will receive the signal. This may also be a process group id.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success but no signal found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if not allowed to send signals to the given process.
+.br
+\fBF_found_not\fP (with error bit) if the given process was not found.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_signal/data/documentation/man/man3/f_signal_set_add.3 b/level_0/f_signal/data/documentation/man/man3/f_signal_set_add.3
new file mode 100644 (file)
index 0000000..104a8c0
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_signal_set_add "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_signal_set_add
+.SH SYNOPSIS
+.nf
+.B #include <signal.h>
+.sp
+\fBf_status_t f_signal_set_add\fP(
+    \fBconst int       \fP\fIsignal\fP,
+    \fBsigset_t *const \fP\fIset\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Add a signal to the given set of signals.
+.SH PARAMETERS
+.TP
+.B signal
+The signal to add.
+
+.TP
+.B set
+The set of signals to add to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success but no signal found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_signal/data/documentation/man/man3/f_signal_set_delete.3 b/level_0/f_signal/data/documentation/man/man3/f_signal_set_delete.3
new file mode 100644 (file)
index 0000000..8b8f077
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_signal_set_delete "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_signal_set_delete
+.SH SYNOPSIS
+.nf
+.B #include <signal.h>
+.sp
+\fBf_status_t f_signal_set_delete\fP(
+    \fBconst int       \fP\fIsignal\fP,
+    \fBsigset_t *const \fP\fIset\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Delete a signal from a given set of signals.
+.SH PARAMETERS
+.TP
+.B signal
+The signal to add.
+
+.TP
+.B set
+The set of signals to delete from.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success but no signal found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_signal/data/documentation/man/man3/f_signal_set_empty.3 b/level_0/f_signal/data/documentation/man/man3/f_signal_set_empty.3
new file mode 100644 (file)
index 0000000..8353a98
--- /dev/null
@@ -0,0 +1,31 @@
+.TH f_signal_set_empty "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_signal_set_empty
+.SH SYNOPSIS
+.nf
+.B #include <signal.h>
+.sp
+\fBf_status_t f_signal_set_empty\fP(
+    \fBsigset_t *const \fP\fIset\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Clear a given set of signals.
+.SH PARAMETERS
+.TP
+.B set
+The set of signals to clear.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success but no signal found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_signal/data/documentation/man/man3/f_signal_set_fill.3 b/level_0/f_signal/data/documentation/man/man3/f_signal_set_fill.3
new file mode 100644 (file)
index 0000000..5c64032
--- /dev/null
@@ -0,0 +1,31 @@
+.TH f_signal_set_fill "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_signal_set_fill
+.SH SYNOPSIS
+.nf
+.B #include <signal.h>
+.sp
+\fBf_status_t f_signal_set_fill\fP(
+    \fBsigset_t *const \fP\fIset\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Add all known signals to a given set of signals.
+.SH PARAMETERS
+.TP
+.B set
+The set of signals to fully populate.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success but no signal found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_signal/data/documentation/man/man3/f_signal_set_has.3 b/level_0/f_signal/data/documentation/man/man3/f_signal_set_has.3
new file mode 100644 (file)
index 0000000..a4d3e99
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_signal_set_has "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_signal_set_has
+.SH SYNOPSIS
+.nf
+.B #include <signal.h>
+.sp
+\fBf_status_t f_signal_set_has\fP(
+    \fBconst int             \fP\fIsignal\fP,
+    \fBconst sigset_t *const \fP\fIset\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the given signal set has a given signal.
+.SH PARAMETERS
+.TP
+.B signal
+The signal to search for.
+
+.TP
+.B set
+The set of signals to search in.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if signal is found.
+.br
+\fBF_false\fP if signal is not found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_signal/data/documentation/man/man3/f_signal_suspend.3 b/level_0/f_signal/data/documentation/man/man3/f_signal_suspend.3
new file mode 100644 (file)
index 0000000..62791ed
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_signal_suspend "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_signal_suspend
+.SH SYNOPSIS
+.nf
+.B #include <signal.h>
+.sp
+\fBf_status_t f_signal_suspend\fP(
+    \fBconst sigset_t *const \fP\fImask\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Suspend the current process until one of the provided signals is received.
+.SH PARAMETERS
+.TP
+.B mask
+The signal mask.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success but no signal found.
+.br
+\fBF_buffer\fP (with error bit) if the mask is pointing to invalid memory.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_signal/data/documentation/man/man3/f_signal_wait.3 b/level_0/f_signal/data/documentation/man/man3/f_signal_wait.3
new file mode 100644 (file)
index 0000000..32d8a5f
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_signal_wait "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_signal_wait
+.SH SYNOPSIS
+.nf
+.B #include <signal.h>
+.sp
+\fBf_status_t f_signal_wait\fP(
+    \fBconst sigset_t *const \fP\fIset\fP,
+    \fBsiginfo_t *const      \fP\fIinformation\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Wait until any signal in a set of signals is received.
+.SH PARAMETERS
+.TP
+.B set
+The set of signals to wait for.
+
+.TP
+.B information
+(optional) The resulting signal information. Set to NULL to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP if signal is found.
+.br
+\fBF_interrupt\fP (with error bit) if interrupted by a signal other than one specified in the signal set.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_signal/data/documentation/man/man3/f_signal_wait_until.3 b/level_0/f_signal/data/documentation/man/man3/f_signal_wait_until.3
new file mode 100644 (file)
index 0000000..cb6b5e9
--- /dev/null
@@ -0,0 +1,45 @@
+.TH f_signal_wait_until "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_signal_wait_until
+.SH SYNOPSIS
+.nf
+.B #include <signal.h>
+.sp
+\fBf_status_t f_signal_wait_until\fP(
+    \fBconst sigset_t *const   \fP\fIset\fP,
+    \fBconst struct timespec  *\fP\fItimeout\fP,
+    \fBsiginfo_t *const        \fP\fIinformation\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Wait until any signal in a set of signals is received until the given time out is reached.
+.SH PARAMETERS
+.TP
+.B set
+The set of signals to wait for.
+
+.TP
+.B timeout
+The amount of time to wait.
+
+.TP
+.B information
+(optional) The resulting signal information. Set to NULL to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP if signal is found before time out.
+.br
+\fBF_time_out\fP if no signal is find by the time out.
+.br
+\fBF_interrupt\fP (with error bit) if interrupted by a signal other than one specified in the signal set.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index 52818d24beaf2988386e0c0f18594f2026278510..c66c62f4312af288311bdc76b45b81ee51c83171 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library socket.c
 
 build_sources_headers socket.h socket/common.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_0/f_socket/data/documentation/man/man3/f_socket_accept.3 b/level_0/f_socket/data/documentation/man/man3/f_socket_accept.3
new file mode 100644 (file)
index 0000000..36b535d
--- /dev/null
@@ -0,0 +1,79 @@
+.TH f_socket_accept "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_socket_accept
+.SH SYNOPSIS
+.nf
+.B #include <socket.h>
+.sp
+\fBf_status_t f_socket_accept\fP(
+    \fBf_socket_t *const \fP\fIsocket\fP,
+    \fBconst int         \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provide means to interact with sockets. Retrieve a client connection from a listening socket.
+.SH PARAMETERS
+.TP
+.B socket
+The client socket structure. The structure should be memset as appropriate before calling this. The properties of the structure, namely socket.id, socket.address, and socket.length, are updated upon a successful return.
+
+.TP
+.B id
+The socket file descriptor representing an actively listening socket to retrieve from.
+
+.SH RETURN VALUE
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_block\fP (with error bit) if socket is blocked.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_buffer_not\fP (with error bit) if unable to create socket due to resource restrictions (maps to ENOBUFS).
+.br
+\fBF_file_descriptor\fP (with error bit) if id is an invalid descriptor.
+.br
+\fBF_file_descriptor_max\fP (with error bit) if max file descriptors is reached.
+.br
+\fBF_file_open_max\fP (with error bit) too many open files.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt is received.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_network_client_not\fP (with error bit) if the client is down.
+.br
+\fBF_network_device_not\fP (with error bit) if the network device no longer exists.
+.br
+\fBF_network_not\fP (with error bit) if network is down.
+.br
+\fBF_network_reach_client_not\fP (with error bit) if the client cannot be reached.
+.br
+\fBF_network_reach_not\fP (with error bit) if the network cannot be reached.
+.br
+\fBF_option_not\fP (with error bit) if the given option is unknown or is unsupported.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if the file system does not permit this operation.
+.br
+\fBF_protocol\fP (with error bit) if a protocol error occurred.
+.br
+\fBF_protocol_not\fP (with error bit) if the given protocol is unknown or is unsupported.
+.br
+\fBF_socket_not\fP (with error bit) if the id is not a socket descriptor.
+.br
+\fBF_stream_not\fP (with error bit) the socket type is not a stream.
+.br
+\fBF_supported_not\fP (with error bit) if this socket type is not supported.
+.br
+\fBF_time_out\fP (with error bit) if a timeout occurred.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_socket/data/documentation/man/man3/f_socket_bind.3 b/level_0/f_socket/data/documentation/man/man3/f_socket_bind.3
new file mode 100644 (file)
index 0000000..28c9a36
--- /dev/null
@@ -0,0 +1,53 @@
+.TH f_socket_bind "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_socket_bind
+.SH SYNOPSIS
+.nf
+.B #include <socket.h>
+.sp
+\fBf_status_t f_socket_bind\fP(
+    \fBf_socket_t *const \fP\fIsocket\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Bind a socket to a name.
+.PP
+This does not initialize or otherwise memset() the address.
+.SH PARAMETERS
+.TP
+.B socket
+The socket structure. The socket.address may point to any valid structure, like "struct sockaddr", "struct sockaddr_un", or "struct sockaddr_in". The caller must appropriately initialize and configure the socket.address. The socket.length must represent the full size of the address structure. The socket.id must refer to a valid socket file descriptor.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_address\fP (with error bit) if address is already in use (therefore unavailable).
+.br
+\fBF_available_not_address\fP (with error bit) if address is unavailable (is non-existent or not local).
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_busy_address\fP (with error bit) if address is already in use (therefore unavailable).
+.br
+\fBF_directory_found_not\fP (with error bit) if directory was not found.
+.br
+\fBF_file_found_not\fP (with error bit) if file not found.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_socket_not\fP (with error bit) if the id is not a socket descriptor.
+.br
+\fBF_string_too_large\fP (with error bit) if string is too large to store in the buffer.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_socket/data/documentation/man/man3/f_socket_bind_local.3 b/level_0/f_socket/data/documentation/man/man3/f_socket_bind_local.3
new file mode 100644 (file)
index 0000000..cc9a392
--- /dev/null
@@ -0,0 +1,54 @@
+.TH f_socket_bind_local "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_socket_bind_local
+.SH SYNOPSIS
+.nf
+.B #include <socket.h>
+.sp
+\fBf_status_t f_socket_bind_local\fP(
+    \fBf_socket_t *const \fP\fIsocket\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Bind a socket to a local (UNIX) socket file.
+.PP
+This does initialize and memset() the address with the address set to a UNIX socket (struct sockaddr_un).
+.SH PARAMETERS
+.TP
+.B socket
+The socket structure. The socket.address must point to a "struct sockaddr_un". The socket.name must be assigned to a path. The socket.type must be assigned to f_socket_domain_file_d.
+
+.SH RETURN VALUE
+\fBF_none\fP on success.
+.br
+\fBF_address\fP (with error bit) if address is already in use (therefore unavailable).
+.br
+\fBF_available_not_address\fP (with error bit) if address is unavailable (is non-existent or not local).
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_busy_address\fP (with error bit) if address is already in use (therefore unavailable).
+.br
+\fBF_directory_found_not\fP (with error bit) if directory was not found.
+.br
+\fBF_file_found_not\fP (with error bit) if file not found.
+.br
+\fBF_local_not\fP (with erro bit) if domain in not a UNIX socket.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_socket_not\fP (with error bit) if the id is not a socket descriptor.
+.br
+\fBF_string_too_large\fP (with error bit) if string is too large to store in the buffer.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_socket/data/documentation/man/man3/f_socket_connect.3 b/level_0/f_socket/data/documentation/man/man3/f_socket_connect.3
new file mode 100644 (file)
index 0000000..fde7d71
--- /dev/null
@@ -0,0 +1,61 @@
+.TH f_socket_connect "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_socket_connect
+.SH SYNOPSIS
+.nf
+.B #include <socket.h>
+.sp
+\fBf_status_t f_socket_connect\fP(
+    \fBconst f_socket_t \fP\fIsocket\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Connect to a socket.
+.SH PARAMETERS
+.TP
+.B socket
+The socket structure. The socket.address may point to any valid structure, like "struct sockaddr", "struct sockaddr_un", or "struct sockaddr_in".
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_available_not_address\fP (with error bit) if address is unavailable (is non-existent or not local).
+.br
+\fBF_block\fP (with error bit) if socket is blocked.
+.br
+\fBF_busy_address\fP (with error bit) if address is already in use (therefore unavailable).
+.br
+\fBF_complete_not\fP (with error bit) if a non-blocking connection attempt is not yet completed.
+.br
+\fBF_connect\fP (with error bit) if already connected.
+.br
+\fBF_connect_refuse\fP (with error bit) if connection is refused because there is nothing listening.
+.br
+\fBF_domain_not\fP (with error bit) if the given domain is unknown or is unsupported.
+.br
+\fBF_file_descriptor\fP (with error bit) if id is an invalid descriptor.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt is received.
+.br
+\fBF_network_reach_not\fP (with error bit) if the network is unreachable.
+.br
+\fBF_progress\fP (with error bit) if if a non-blocking connection cannot be completed immediately.
+.br
+\fBF_prohibited\fP (with error bit) if the file system does not permit this operation.
+.br
+\fBF_protocol_not\fP (with error bit) if the given protocol is unknown or is unsupported.
+.br
+\fBF_socket_not\fP (with error bit) if the id is not a socket descriptor.
+.br
+\fBF_time_out\fP (with error bit) if a timeout occurred.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_socket/data/documentation/man/man3/f_socket_create.3 b/level_0/f_socket/data/documentation/man/man3/f_socket_create.3
new file mode 100644 (file)
index 0000000..b65cfa1
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_socket_create "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_socket_create
+.SH SYNOPSIS
+.nf
+.B #include <socket.h>
+.sp
+\fBf_status_t f_socket_create\fP(
+    \fBf_socket_t *const \fP\fIsocket\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create a new socket.
+.SH PARAMETERS
+.TP
+.B socket
+The socket structure. The socket.address may point to any valid structure, like "struct sockaddr", "struct sockaddr_un", or "struct sockaddr_in". The socket.domain must be assigned the desired domain. The socket.type must be assigned the desired type. The socket.protocol must be assigned the desired protocol. The socket.id will be updated with a file descriptor representing the created socket.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_buffer_not\fP (with error bit) if unable to create socket due to resource restrictions (maps to ENOBUFS).
+.br
+\fBF_domain_not\fP (with error bit) if the given domain is unknown or is unsupported.
+.br
+\fBF_file_descriptor_max\fP (with error bit) if max file descriptors is reached.
+.br
+\fBF_file_open_max\fP (with error bit) too many open files.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_protocol_not\fP (with error bit) if the given protocol is unknown or is unsupported.
+.br
+\fBF_type_not\fP (with error bit) if the given type is unknown or is unsupported.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_socket/data/documentation/man/man3/f_socket_create_pair.3 b/level_0/f_socket/data/documentation/man/man3/f_socket_create_pair.3
new file mode 100644 (file)
index 0000000..b6c159b
--- /dev/null
@@ -0,0 +1,69 @@
+.TH f_socket_create_pair "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_socket_create_pair
+.SH SYNOPSIS
+.nf
+.B #include <socket.h>
+.sp
+\fBf_status_t f_socket_create_pair\fP(
+    \fBconst int  \fP\fIdomain\fP,
+    \fBconst int  \fP\fIprotocol\fP,
+    \fBconst int  \fP\fItype\fP,
+    \fBint *const \fP\fIid_1\fP,
+    \fBint *const \fP\fIid_2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create a new pair of identical sockets.
+.PP
+This is generally intended to be used for pipes.
+.PP
+This socket is supposed to be identical to the one specified by id_1.
+.SH PARAMETERS
+.TP
+.B domain
+The protocol family.
+
+.TP
+.B protocol
+The protocol to use.
+
+.TP
+.B type
+The communication type.
+
+.TP
+.B id_1
+The first of the pair of socket file descriptors.
+
+.TP
+.B id_2
+The second of the pair of socket file descriptors.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_buffer_not\fP (with error bit) if unable to create socket due to resource restrictions (maps to ENOBUFS).
+.br
+\fBF_domain_not\fP (with error bit) if the given domain is unknown or is unsupported.
+.br
+\fBF_file_descriptor_max\fP (with error bit) if max file descriptors is reached.
+.br
+\fBF_file_open_max\fP (with error bit) too many open files.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_protocol_not\fP (with error bit) if the given protocol is unknown or is unsupported.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_socket/data/documentation/man/man3/f_socket_disconnect.3 b/level_0/f_socket/data/documentation/man/man3/f_socket_disconnect.3
new file mode 100644 (file)
index 0000000..38421ab
--- /dev/null
@@ -0,0 +1,60 @@
+.TH f_socket_disconnect "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_socket_disconnect
+.SH SYNOPSIS
+.nf
+.B #include <socket.h>
+.sp
+\fBf_status_t f_socket_disconnect\fP(
+    \fBf_socket_t *const \fP\fIsocket\fP,
+    \fBconst uint8_t     \fP\fIaction\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Terminate a socket connection.
+.PP
+The shutdown() call is used for all actions, except f_socket_close_fast_e. When shutdown() is called, a proper network disconnection process is initiated. The network connection will properly send the FIN packets. The shutdown() also allows current buffers to be properly flushed. The file descriptor is not closed. The remaining buffer can still be processed. Be sure to call either this function again with f_socket_close_fast_e or call f_file_close() directly.
+.PP
+When action is f_socket_close_fast_e, then close() is called. What happens then is that rather than waiting for FIN a RST is immediately sent (RST is sent only if connection is still active). All buffers are discarded. The connection is immediately removed. Thus, f_socket_close_fast_e (calling close()) on a socket results in bad network practice.
+.PP
+In the above cases, whether or not a RST or FIN are sent is also dependent on whether the f_socket_option_linger_d is used (SO_LINGER).
+.SH PARAMETERS
+.TP
+.B socket
+The socket structure. The socket.id must represent a valid socket file descriptor.
+
+.TP
+.B action
+The action to perform on close. f_socket_close_fast_e calls close().
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_connect_not\fP if the socket is not connected.
+.br
+\fBF_busy_address\fP (with error bit) if address is already in use (therefore unavailable).
+.br
+\fBF_file_descriptor\fP (with error bit) if id is an invalid descriptor.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_input_output\fP (with error bit) if an I/O error occurred.
+.br
+\fBF_interrupt\fP (with error bit) when program received an interrupt signal, halting operation.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_socket_not\fP (with error bit) if the id is not a socket descriptor.
+.br
+\fBF_space_not\fP (with error bit) if file system is out of space (or file system quota is reached).
+.br
+\fBF_supported_not\fP (with error bit) if this socket does not support the listen() operation.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_socket/data/documentation/man/man3/f_socket_listen.3 b/level_0/f_socket/data/documentation/man/man3/f_socket_listen.3
new file mode 100644 (file)
index 0000000..3b2d7b0
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_socket_listen "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_socket_listen
+.SH SYNOPSIS
+.nf
+.B #include <socket.h>
+.sp
+\fBf_status_t f_socket_listen\fP(
+    \fBf_socket_t *const  \fP\fIsocket\fP,
+    \fBconst unsigned int \fP\fImax_backlog\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the socket to listen mode (passive socket).
+.SH PARAMETERS
+.TP
+.B socket
+The socket structure. The socket.id must represent a valid socket file descriptor.
+
+.TP
+.B max_backlog
+The max length of the pending connections queue. Suggested default setting: 8.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_busy_address\fP (with error bit) if address is already in use (therefore unavailable).
+.br
+\fBF_file_descriptor\fP (with error bit) if id is an invalid descriptor.
+.br
+\fBF_socket_not\fP (with error bit) if the id is not a socket descriptor.
+.br
+\fBF_supported_not\fP (with error bit) if this socket does not support the listen() operation.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_socket/data/documentation/man/man3/f_socket_option_get.3 b/level_0/f_socket/data/documentation/man/man3/f_socket_option_get.3
new file mode 100644 (file)
index 0000000..715284d
--- /dev/null
@@ -0,0 +1,59 @@
+.TH f_socket_option_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_socket_option_get
+.SH SYNOPSIS
+.nf
+.B #include <socket.h>
+.sp
+\fBf_status_t f_socket_option_get\fP(
+    \fBf_socket_t *const \fP\fIsocket\fP,
+    \fBconst int         \fP\fIlevel\fP,
+    \fBconst int         \fP\fIoption\fP,
+    \fBvoid *const       \fP\fIvalue\fP,
+    \fBsocklen_t *const  \fP\fIlength\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get a socket option value.
+.SH PARAMETERS
+.TP
+.B socket
+The socket structure. The socket.id must represent a valid socket file descriptor.
+
+.TP
+.B level
+The level in which the socket option is located. This may be synonymous with "layer".
+
+.TP
+.B option
+The option code used to represent the option name.
+
+.TP
+.B value
+The value to assign.
+
+.TP
+.B length
+The length of the value (often derived from a sizeof() call).
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_buffer\fP (with error bit) if the given value is out of scope.
+.br
+\fBF_file_descriptor\fP (with error bit) if id is an invalid descriptor.
+.br
+\fBF_option_not\fP (with error bit) if the type is not valid for the given level.
+.br
+\fBF_socket_not\fP (with error bit) if the id is not a socket descriptor.
+.br
+\fBF_value\fP (with error bit) if either the value or the length is invalid.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_socket/data/documentation/man/man3/f_socket_option_set.3 b/level_0/f_socket/data/documentation/man/man3/f_socket_option_set.3
new file mode 100644 (file)
index 0000000..010911c
--- /dev/null
@@ -0,0 +1,59 @@
+.TH f_socket_option_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_socket_option_set
+.SH SYNOPSIS
+.nf
+.B #include <socket.h>
+.sp
+\fBf_status_t f_socket_option_set\fP(
+    \fBf_socket_t *const \fP\fIsocket\fP,
+    \fBconst int         \fP\fIlevel\fP,
+    \fBconst int         \fP\fIoption\fP,
+    \fBconst void *const \fP\fIvalue\fP,
+    \fBconst socklen_t   \fP\fIlength\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set a socket option value.
+.SH PARAMETERS
+.TP
+.B socket
+The socket structure. The socket.id must represent a valid socket file descriptor.
+
+.TP
+.B level
+The level in which the socket option is located. This may be synonymous with "layer".
+
+.TP
+.B option
+The option code used to represent the option name.
+
+.TP
+.B value
+The value to assign.
+
+.TP
+.B length
+The length of the value (often derived from a sizeof() call).
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_buffer\fP (with error bit) if the given value is out of scope.
+.br
+\fBF_file_descriptor\fP (with error bit) if id is an invalid descriptor.
+.br
+\fBF_option_not\fP (with error bit) if the type is not valid for the given level.
+.br
+\fBF_socket_not\fP (with error bit) if the id is not a socket descriptor.
+.br
+\fBF_value\fP (with error bit) if either the value or the length is invalid.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_socket/data/documentation/man/man3/f_socket_read.3 b/level_0/f_socket/data/documentation/man/man3/f_socket_read.3
new file mode 100644 (file)
index 0000000..2179bd3
--- /dev/null
@@ -0,0 +1,75 @@
+.TH f_socket_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_socket_read
+.SH SYNOPSIS
+.nf
+.B #include <socket.h>
+.sp
+\fBf_status_t f_socket_read\fP(
+    \fBf_socket_t *const \fP\fIsocket\fP,
+    \fBconst int         \fP\fIflags\fP,
+    \fBvoid *const       \fP\fIbuffer\fP,
+    \fBsize_t *const     \fP\fIlength\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Read from a socket.
+.SH PARAMETERS
+.TP
+.B socket
+The socket structure. The socket.id must represent a valid socket file descriptor. The socket.size_read is used to represent the buffer size in buffer and must not be larger than the actual size of the buffer.
+
+.TP
+.B flags
+Read flags.
+
+.TP
+.B buffer
+The buffer to populate.
+
+.TP
+.B length
+(optional) The length of the buffer. This gets replaced with the value of a positive ssize_t representing the length read. Data may be lost if the amount of data read is larger than given buffer length. Set to NULL to not use.
+
+.SH RETURN VALUE
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_complete_not\fP (with error bit) if an existing connection is not yet complete.
+.br
+\fBF_connect_not\fP (with error bit) if the socket is not connected.
+.br
+\fBF_connect_refuse\fP (with error bit) if connection is refused.
+.br
+\fBF_connect_reset\fP (with error bit) if connection is reset.
+.br
+\fBF_block\fP (with error bit) if socket is blocked.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_descriptor\fP (with error bit) if id is an invalid descriptor.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt is received.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_option_not\fP (with error bit) if a flag is not supported.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if the local end of a connection oriented socket is closed or SIGPIPE is received.
+.br
+\fBF_prohibited\fP (with error bit) if the insufficient privileges to perform read.
+.br
+\fBF_socket_not\fP (with error bit) if the id is not a socket descriptor.
+.br
+\fBF_time_out\fP (with error bit) if a timeout occurred.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_socket/data/documentation/man/man3/f_socket_read_message.3 b/level_0/f_socket/data/documentation/man/man3/f_socket_read_message.3
new file mode 100644 (file)
index 0000000..ccb1ec5
--- /dev/null
@@ -0,0 +1,76 @@
+.TH f_socket_read_message "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_socket_read_message
+.SH SYNOPSIS
+.nf
+.B #include <socket.h>
+.sp
+\fBf_status_t f_socket_read_message\fP(
+    \fBf_socket_t *const    \fP\fIsocket\fP,
+    \fBconst int            \fP\fIflags\fP,
+    \fBstruct msghdr *const \fP\fIheader\fP,
+    \fBsize_t *const        \fP\fIlength\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Read a message from a socket.
+.SH PARAMETERS
+.TP
+.B socket
+The socket structure. The socket.id must represent a valid socket file descriptor.
+
+.TP
+.B flags
+Read flags.
+
+.TP
+.B header
+The message header.
+
+.TP
+.B length
+(optional) The length of the buffer. This gets replaced with the value of a positive ssize_t representing the length read. Data may be lost if the amount of data read is larger than given buffer length.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_complete_not\fP (with error bit) if an existing connection is not yet complete.
+.br
+\fBF_connect_not\fP (with error bit) if the socket is not connected.
+.br
+\fBF_connect_refuse\fP (with error bit) if connection is refused.
+.br
+\fBF_connect_reset\fP (with error bit) if connection is reset.
+.br
+\fBF_block\fP (with error bit) if socket is blocked.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_descriptor\fP (with error bit) if id is an invalid descriptor.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt is received.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_option_not\fP (with error bit) if a flag is not supported.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if the local end of a connection oriented socket is closed or SIGPIPE is received.
+.br
+\fBF_prohibited\fP (with error bit) if the insufficient privileges to perform read.
+.br
+\fBF_socket_not\fP (with error bit) if the id is not a socket descriptor.
+.br
+\fBF_time_out\fP (with error bit) if a timeout occurred.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_socket/data/documentation/man/man3/f_socket_write.3 b/level_0/f_socket/data/documentation/man/man3/f_socket_write.3
new file mode 100644 (file)
index 0000000..2536e33
--- /dev/null
@@ -0,0 +1,84 @@
+.TH f_socket_write "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_socket_write
+.SH SYNOPSIS
+.nf
+.B #include <socket.h>
+.sp
+\fBf_status_t f_socket_write\fP(
+    \fBf_socket_t *const \fP\fIsocket\fP,
+    \fBconst int         \fP\fIflags\fP,
+    \fBvoid *const       \fP\fIbuffer\fP,
+    \fBsize_t *const     \fP\fIlength\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Send to a socket.
+.SH PARAMETERS
+.TP
+.B socket
+The socket structure. The socket.id must represent a valid socket file descriptor. The socket.size_write is used to represent the buffer size in buffer and must not be larger than the actual size of the buffer.
+
+.TP
+.B flags
+Read flags.
+
+.TP
+.B buffer
+The buffer to populate.
+
+.TP
+.B length
+(optional) The length of the buffer. This gets replaced with the value of a positive ssize_t representing the length send. Data may be lost if the amount of data send is larger than given buffer length. Set to NULL to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_address_not\fP (with error bit) if no address is provided and the connection is not "connection-mode".
+.br
+\fBF_buffer_not\fP (with error bit) if unable to send message because output buffer is full.
+.br
+\fBF_complete_not\fP (with error bit) if an existing connection is not yet complete.
+.br
+\fBF_connect\fP (with error bit) if an address is provided and the connection is "connection-mode".
+.br
+\fBF_connect_not\fP (with error bit) if the socket is not connected.
+.br
+\fBF_connect_refuse\fP (with error bit) if connection is refused.
+.br
+\fBF_connect_reset\fP (with error bit) if connection is reset.
+.br
+\fBF_block\fP (with error bit) if socket is blocked.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_descriptor\fP (with error bit) if id is an invalid descriptor.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt is received.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_option_not\fP (with error bit) if a flag is not supported.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if the local end of a connection oriented socket is closed or SIGPIPE is received.
+.br
+\fBF_prohibited\fP (with error bit) if the insufficient privileges to perform send.
+.br
+\fBF_size\fP (with error bit) if size of message makes atomically sending message impossible on a socket type that requires this to be atomic.
+.br
+\fBF_socket_not\fP (with error bit) if the id is not a socket descriptor.
+.br
+\fBF_time_out\fP (with error bit) if a timeout occurred.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_socket/data/documentation/man/man3/f_socket_write_message.3 b/level_0/f_socket/data/documentation/man/man3/f_socket_write_message.3
new file mode 100644 (file)
index 0000000..2d9ebee
--- /dev/null
@@ -0,0 +1,84 @@
+.TH f_socket_write_message "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_socket_write_message
+.SH SYNOPSIS
+.nf
+.B #include <socket.h>
+.sp
+\fBf_status_t f_socket_write_message\fP(
+    \fBf_socket_t *const    \fP\fIsocket\fP,
+    \fBconst int            \fP\fIflags\fP,
+    \fBstruct msghdr *const \fP\fIheader\fP,
+    \fBsize_t *const        \fP\fIlength\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Send a message to a socket.
+.SH PARAMETERS
+.TP
+.B socket
+The socket structure. The socket.id must represent a valid socket file descriptor.
+
+.TP
+.B flags
+Read flags.
+
+.TP
+.B header
+The message header.
+
+.TP
+.B length
+(optional) The length of the buffer. This gets replaced with the value of a positive ssize_t representing the length send. Data may be lost if the amount of data send is larger than given buffer length.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_address_not\fP (with error bit) if no address is provided and the connection is not "connection-mode".
+.br
+\fBF_buffer_not\fP (with error bit) if unable to send message because output buffer is full.
+.br
+\fBF_complete_not\fP (with error bit) if an existing connection is not yet complete.
+.br
+\fBF_connect\fP (with error bit) if an address is provided and the connection is "connection-mode".
+.br
+\fBF_connect_not\fP (with error bit) if the socket is not connected.
+.br
+\fBF_connect_refuse\fP (with error bit) if connection is refused.
+.br
+\fBF_connect_reset\fP (with error bit) if connection is reset.
+.br
+\fBF_block\fP (with error bit) if socket is blocked.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file_descriptor\fP (with error bit) if id is an invalid descriptor.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt is received.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_option_not\fP (with error bit) if a flag is not supported.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_pipe\fP (with error bit) if the local end of a connection oriented socket is closed or SIGPIPE is received.
+.br
+\fBF_prohibited\fP (with error bit) if the insufficient privileges to perform send.
+.br
+\fBF_size\fP (with error bit) if size of message makes atomically sending message impossible on a socket type that requires this to be atomic.
+.br
+\fBF_socket_not\fP (with error bit) if the id is not a socket descriptor.
+.br
+\fBF_time_out\fP (with error bit) if a timeout occurred.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index f7e5fa584417416000cbb337d22cff1bc05967b8..6200f04468d2a7af46d88b6e169b0685c199f779 100644 (file)
@@ -33,6 +33,8 @@ build_libraries -lc
 
 build_sources_headers status.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_0/f_status/data/documentation/man/man3/f_status_string_to.3 b/level_0/f_status/data/documentation/man/man3/f_status_string_to.3
new file mode 100644 (file)
index 0000000..bb9de69
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_status_string_to "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_status_string_to
+.SH SYNOPSIS
+.nf
+.B #include <status_string.h>
+.sp
+\fBf_status_t f_status_string_to\fP(
+    \fBconst f_status_t         \fP\fIcode\fP,
+    \fBf_string_static_t *const \fP\fIname\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert status codes to their string representation.
+.PP
+The error, warning, and signal bits are ignored.
+.SH PARAMETERS
+.TP
+.B code
+The status number to process.
+
+.TP
+.B name
+The processed code name.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data\fP (with error bit) if there status is unknown.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_status/data/documentation/man/man3/f_statuss_adjust.3 b/level_0/f_status/data/documentation/man/man3/f_statuss_adjust.3
new file mode 100644 (file)
index 0000000..583783d
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_statuss_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_statuss_adjust
+.SH SYNOPSIS
+.nf
+.B #include <status.h>
+.sp
+\fBf_status_t f_statuss_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_statuss_t           *\fP\fIstatuss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string statuss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B statuss
+The string statuss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_status/data/documentation/man/man3/f_statuss_append.3 b/level_0/f_status/data/documentation/man/man3/f_statuss_append.3
new file mode 100644 (file)
index 0000000..8eab410
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_statuss_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_statuss_append
+.SH SYNOPSIS
+.nf
+.B #include <status.h>
+.sp
+\fBf_status_t f_statuss_append\fP(
+    \fBconst f_status_t \fP\fIsource\fP,
+    \fBf_statuss_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source status onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source status to append.
+
+.TP
+.B destination
+The destination statuss the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_status/data/documentation/man/man3/f_statuss_append_all.3 b/level_0/f_status/data/documentation/man/man3/f_statuss_append_all.3
new file mode 100644 (file)
index 0000000..445c6d5
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_statuss_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_statuss_append_all
+.SH SYNOPSIS
+.nf
+.B #include <status.h>
+.sp
+\fBf_status_t f_statuss_append_all\fP(
+    \fBconst f_statuss_t \fP\fIsource\fP,
+    \fBf_statuss_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source statuss onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source statuss to append.
+
+.TP
+.B destination
+The destination statuss the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_status/data/documentation/man/man3/f_statuss_decimate_by.3 b/level_0/f_status/data/documentation/man/man3/f_statuss_decimate_by.3
new file mode 100644 (file)
index 0000000..165a42c
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_statuss_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_statuss_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <status.h>
+.sp
+\fBf_status_t f_statuss_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_statuss_t           *\fP\fIstatuss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string statuss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B statuss
+The string statuss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_status/data/documentation/man/man3/f_statuss_decrease_by.3 b/level_0/f_status/data/documentation/man/man3/f_statuss_decrease_by.3
new file mode 100644 (file)
index 0000000..ffc5603
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_statuss_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_statuss_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <status.h>
+.sp
+\fBf_status_t f_statuss_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_statuss_t           *\fP\fIstatuss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string statuss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B statuss
+The string statuss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_status/data/documentation/man/man3/f_statuss_increase.3 b/level_0/f_status/data/documentation/man/man3/f_statuss_increase.3
new file mode 100644 (file)
index 0000000..966c80c
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_statuss_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_statuss_increase
+.SH SYNOPSIS
+.nf
+.B #include <status.h>
+.sp
+\fBf_status_t f_statuss_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_statuss_t           *\fP\fIstatuss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string statuss array, but only if necesary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B statuss
+The string statuss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_status/data/documentation/man/man3/f_statuss_increase_by.3 b/level_0/f_status/data/documentation/man/man3/f_statuss_increase_by.3
new file mode 100644 (file)
index 0000000..141296f
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_statuss_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_statuss_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <status.h>
+.sp
+\fBf_status_t f_statuss_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_statuss_t           *\fP\fIstatuss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string statuss array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B statuss
+The string statuss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_status/data/documentation/man/man3/f_statuss_resize.3 b/level_0/f_status/data/documentation/man/man3/f_statuss_resize.3
new file mode 100644 (file)
index 0000000..2834c50
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_statuss_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_statuss_resize
+.SH SYNOPSIS
+.nf
+.B #include <status.h>
+.sp
+\fBf_status_t f_statuss_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_statuss_t           *\fP\fIstatuss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string statuss array.
+.PP
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B statuss
+The string statuss array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_status/data/documentation/man/man3/f_statusss_adjust.3 b/level_0/f_status/data/documentation/man/man3/f_statusss_adjust.3
new file mode 100644 (file)
index 0000000..c9a0521
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_statusss_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_statusss_adjust
+.SH SYNOPSIS
+.nf
+.B #include <status.h>
+.sp
+\fBf_status_t f_statusss_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_statusss_t          *\fP\fIstatusss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string statusss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B statusss
+The string statusss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_status/data/documentation/man/man3/f_statusss_append.3 b/level_0/f_status/data/documentation/man/man3/f_statusss_append.3
new file mode 100644 (file)
index 0000000..6f6e50d
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_statusss_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_statusss_append
+.SH SYNOPSIS
+.nf
+.B #include <status.h>
+.sp
+\fBf_status_t f_statusss_append\fP(
+    \fBconst f_statuss_t \fP\fIsource\fP,
+    \fBf_statusss_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source statuss onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source statuss to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_status/data/documentation/man/man3/f_statusss_append_all.3 b/level_0/f_status/data/documentation/man/man3/f_statusss_append_all.3
new file mode 100644 (file)
index 0000000..4520cb7
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_statusss_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_statusss_append_all
+.SH SYNOPSIS
+.nf
+.B #include <status.h>
+.sp
+\fBf_status_t f_statusss_append_all\fP(
+    \fBconst f_statusss_t \fP\fIsource\fP,
+    \fBf_statusss_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source statusss onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source statusss to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_status/data/documentation/man/man3/f_statusss_decimate_by.3 b/level_0/f_status/data/documentation/man/man3/f_statusss_decimate_by.3
new file mode 100644 (file)
index 0000000..abdaa0f
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_statusss_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_statusss_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <status.h>
+.sp
+\fBf_status_t f_statusss_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_statusss_t          *\fP\fIstatusss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string statusss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B statusss
+The string statusss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_status/data/documentation/man/man3/f_statusss_decrease_by.3 b/level_0/f_status/data/documentation/man/man3/f_statusss_decrease_by.3
new file mode 100644 (file)
index 0000000..d1ea150
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_statusss_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_statusss_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <status.h>
+.sp
+\fBf_status_t f_statusss_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_statusss_t          *\fP\fIstatusss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string statusss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B statusss
+The string statusss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_status/data/documentation/man/man3/f_statusss_increase.3 b/level_0/f_status/data/documentation/man/man3/f_statusss_increase.3
new file mode 100644 (file)
index 0000000..68fecfa
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_statusss_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_statusss_increase
+.SH SYNOPSIS
+.nf
+.B #include <status.h>
+.sp
+\fBf_status_t f_statusss_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_statusss_t          *\fP\fIstatusss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string statusss array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B statusss
+The string statusss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_status/data/documentation/man/man3/f_statusss_increase_by.3 b/level_0/f_status/data/documentation/man/man3/f_statusss_increase_by.3
new file mode 100644 (file)
index 0000000..191d66f
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_statusss_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_statusss_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <status.h>
+.sp
+\fBf_status_t f_statusss_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_statusss_t          *\fP\fIstatusss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string statusss array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B statusss
+The string statusss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_status/data/documentation/man/man3/f_statusss_resize.3 b/level_0/f_status/data/documentation/man/man3/f_statusss_resize.3
new file mode 100644 (file)
index 0000000..2f817fd
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_statusss_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_statusss_resize
+.SH SYNOPSIS
+.nf
+.B #include <status.h>
+.sp
+\fBf_status_t f_statusss_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_statusss_t          *\fP\fIstatusss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string statusss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B statusss
+The string statusss array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.PP
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index 25941271643aa53a4455cb03cb15671efb287169..bd6e9b9ed2973449f633367172eed234e2226c95 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library status_string.c
 
 build_sources_headers status_string.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
index e53840ef510e076934cee336157ba86da9c7a160..620cb98bf3ae590a910be57b597c3c7fde1c3b30 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library string.c private-string.c string/common.c string/private-d
 
 build_sources_headers string.h string/common.h string/dynamic.h string/map.h string/map_multi.h string/quantity.h string/range.h string/static.h string/triple.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_append.3 b/level_0/f_string/data/documentation/man/man3/f_string_append.3
new file mode 100644 (file)
index 0000000..cb4c91b
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_string_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_append
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_string_append\fP(
+    \fBconst f_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t    \fP\fIlength\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provides string capabilities.
+.PP
+It is highly recommended that all string arrays are set to a max size of F_array_length_t_size_d. Any calculations against the length (aka: string.used) can always perform (A < B) operators such that the B is
+.br
+\fBF_array_length_t_size_d\fP + 1 without integer overflow. Append the source string onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The destination string the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_append_assure.3 b/level_0/f_string/data/documentation/man/man3/f_string_append_assure.3
new file mode 100644 (file)
index 0000000..f34c9a4
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_string_append_assure "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_append_assure
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_string_append_assure\fP(
+    \fBconst f_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t    \fP\fIlength\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination only if the string is not already at the end.
+.PP
+This ignores NULL characters when comparing both the source and the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The destination string the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_append_assure_nulless.3 b/level_0/f_string/data/documentation/man/man3/f_string_append_assure_nulless.3
new file mode 100644 (file)
index 0000000..7af318c
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_string_append_assure_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_append_assure_nulless
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_string_append_assure_nulless\fP(
+    \fBconst f_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t    \fP\fIlength\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination only if the string is not already at the end.
+.PP
+This ignores NULL characters when comparing both the source and the destination. Skips over NULL characters from source when appending.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The destination string the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_append_nulless.3 b/level_0/f_string/data/documentation/man/man3/f_string_append_nulless.3
new file mode 100644 (file)
index 0000000..d0b80a7
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_string_append_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_append_nulless
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_string_append_nulless\fP(
+    \fBconst f_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t    \fP\fIlength\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination.
+.PP
+Skips over NULL characters from source when appending.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The destination string the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_adjust.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_adjust.3
new file mode 100644 (file)
index 0000000..4ec21f9
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_string_dynamic_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_adjust
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_adjust\fP(
+    \fBconst f_array_length_t    \fP\fIlength\fP,
+    \fBf_string_dynamic_t *const \fP\fIdynamic\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamic string.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B dynamic
+The string to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_append.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_append.3
new file mode 100644 (file)
index 0000000..ff93b09
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_dynamic_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_append
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_append\fP(
+    \fBconst f_string_dynamic_t  \fP\fIsource\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B destination
+The destination string the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_append_assure.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_append_assure.3
new file mode 100644 (file)
index 0000000..6749e30
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_dynamic_append_assure "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_append_assure
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_append_assure\fP(
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination only if the string is not already at the end.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B destination
+The destination string the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_append_assure_nulless.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_append_assure_nulless.3
new file mode 100644 (file)
index 0000000..456812e
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_dynamic_append_assure_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_append_assure_nulless
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_append_assure_nulless\fP(
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination only if the string is not already at the end.
+.PP
+Skips over NULL characters from source when appending.
+.PP
+Errors (with error bit) from: f_memory_resize().
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B destination
+The destination string the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_append_nulless.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_append_nulless.3
new file mode 100644 (file)
index 0000000..54ee347
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_dynamic_append_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_append_nulless
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_append_nulless\fP(
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination.
+.PP
+Skips over NULL characters from source when appending.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B destination
+The destination string the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_decimate_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_decimate_by.3
new file mode 100644 (file)
index 0000000..33b2acd
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_dynamic_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_decimate_by\fP(
+    \fBconst f_array_length_t    \fP\fIamount\fP,
+    \fBf_string_dynamic_t *const \fP\fIdynamic\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamic string to a smaller size.
+.PP
+This will resize making the string smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B dynamic
+The string to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_decrease_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_decrease_by.3
new file mode 100644 (file)
index 0000000..9249229
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_dynamic_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_decrease_by\fP(
+    \fBconst f_array_length_t    \fP\fIamount\fP,
+    \fBf_string_dynamic_t *const \fP\fIdynamic\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamic string to a smaller size.
+.PP
+This will resize making the string smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B dynamic
+The string to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_increase.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_increase.3
new file mode 100644 (file)
index 0000000..488bca7
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_dynamic_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_increase
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_increase\fP(
+    \fBconst f_array_length_t    \fP\fIstep\fP,
+    \fBf_string_dynamic_t *const \fP\fIdynamic\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamic string to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B dynamic
+The string to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size) (or step is 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_increase_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_increase_by.3
new file mode 100644 (file)
index 0000000..d6f63ab
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_dynamic_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_increase_by\fP(
+    \fBconst f_array_length_t    \fP\fIamount\fP,
+    \fBf_string_dynamic_t *const \fP\fIdynamic\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamic string to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B dynamic
+The string to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_mash.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_mash.3
new file mode 100644 (file)
index 0000000..fabee6d
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_string_dynamic_mash "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_mash
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_mash\fP(
+    \fBconst f_string_static_t   \fP\fIglue\fP,
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination with the glue in between.
+.PP
+If the destination string is empty, then no glue is appended.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B source
+The source string to append.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_mash_nulless.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_mash_nulless.3
new file mode 100644 (file)
index 0000000..8c18e4c
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_string_dynamic_mash_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_mash_nulless
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_mash_nulless\fP(
+    \fBconst f_string_static_t   \fP\fIglue\fP,
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination with the glue in between.
+.PP
+If the destination string is empty, then no glue is appended.
+.PP
+Skips over NULL characters from glue and source when appending.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B source
+The source string to append.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_mish.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_mish.3
new file mode 100644 (file)
index 0000000..65eb71a
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_string_dynamic_mish "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_mish
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_mish\fP(
+    \fBconst f_string_static_t   \fP\fIglue\fP,
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination with the glue in between.
+.PP
+If the destination string is empty, then no glue is appended.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B source
+The source string to append.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_mish_nulless.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_mish_nulless.3
new file mode 100644 (file)
index 0000000..66fe97f
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_string_dynamic_mish_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_mish_nulless
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_mish_nulless\fP(
+    \fBconst f_string_static_t   \fP\fIglue\fP,
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination with the glue in between.
+.PP
+If the destination string is empty, then no glue is appended.
+.PP
+Skips over NULL characters from glue and source when appending.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B source
+The source string to append.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_append.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_append.3
new file mode 100644 (file)
index 0000000..7a71100
--- /dev/null
@@ -0,0 +1,51 @@
+.TH f_string_dynamic_partial_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_partial_append
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_partial_append\fP(
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t    \fP\fIrange\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination, but restricted to the given range.
+.PP
+If range.stop is on or after source.used, then source.used - 1 is used as the stopping point.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B range
+A range within the source to restrict the copy from.
+
+.TP
+.B destination
+The destination string the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_eos\fP if range.start >= source.used.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_append_assure.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_append_assure.3
new file mode 100644 (file)
index 0000000..547cd1d
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_string_dynamic_partial_append_assure "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_partial_append_assure
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_partial_append_assure\fP(
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t    \fP\fIrange\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination only if the string is not already at the end and restricted to the given range.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B range
+A range within the source to restrict the copy from.
+
+.TP
+.B destination
+The destination string the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_eos\fP if range.start >= source.used.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_append_assure_nulless.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_append_assure_nulless.3
new file mode 100644 (file)
index 0000000..544975d
--- /dev/null
@@ -0,0 +1,53 @@
+.TH f_string_dynamic_partial_append_assure_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_partial_append_assure_nulless
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_partial_append_assure_nulless\fP(
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t    \fP\fIrange\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination only if the string is not already at the end and restricted to the given range.
+.PP
+This ignores NULL characters when comparing both the source and the destination.
+.PP
+Skips over NULL characters from source when appending.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B range
+A range within the source to restrict the copy from.
+
+.TP
+.B destination
+The destination string the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_eos\fP if range.start >= source.used.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_append_nulless.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_append_nulless.3
new file mode 100644 (file)
index 0000000..70593d0
--- /dev/null
@@ -0,0 +1,51 @@
+.TH f_string_dynamic_partial_append_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_partial_append_nulless
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_partial_append_nulless\fP(
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t    \fP\fIrange\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination, but restricted to the given range.
+.PP
+Skips over NULL characters from source when appending.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B range
+A range within the source to restrict the copy from.
+
+.TP
+.B destination
+The destination string the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_eos\fP if range.start >= source.used.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_mash.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_mash.3
new file mode 100644 (file)
index 0000000..41510a9
--- /dev/null
@@ -0,0 +1,56 @@
+.TH f_string_dynamic_partial_mash "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_partial_mash
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_partial_mash\fP(
+    \fBconst f_string_static_t   \fP\fIglue\fP,
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t    \fP\fIrange\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination with the glue in between, but restricted to the given range.
+.PP
+If the destination string is empty, then no glue is appended.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B source
+The source string to append.
+
+.TP
+.B range
+A range within the source to restrict the copy from.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_eos\fP if range.start >= source.used.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_mash_nulless.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_mash_nulless.3
new file mode 100644 (file)
index 0000000..5ef5d6d
--- /dev/null
@@ -0,0 +1,58 @@
+.TH f_string_dynamic_partial_mash_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_partial_mash_nulless
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_partial_mash_nulless\fP(
+    \fBconst f_string_static_t   \fP\fIglue\fP,
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t    \fP\fIrange\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination with the glue in between, but restricted to the given range.
+.PP
+If the destination string is empty, then no glue is appended.
+.PP
+Skips over NULL characters from glue and source when appending.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B source
+The source string to append.
+
+.TP
+.B range
+A range within the source to restrict the copy from.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_eos\fP if range.start >= source.used.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_mish.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_mish.3
new file mode 100644 (file)
index 0000000..f48473b
--- /dev/null
@@ -0,0 +1,56 @@
+.TH f_string_dynamic_partial_mish "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_partial_mish
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_partial_mish\fP(
+    \fBconst f_string_static_t   \fP\fIglue\fP,
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t    \fP\fIrange\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination with the glue in between, but restricted to the given range.
+.PP
+If the destination string is empty, then no glue is appended.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B source
+The source string to append.
+
+.TP
+.B range
+A range within the source to restrict the copy from.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_eos\fP if range.start >= source.used.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_mish_nulless.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_mish_nulless.3
new file mode 100644 (file)
index 0000000..3fb4975
--- /dev/null
@@ -0,0 +1,58 @@
+.TH f_string_dynamic_partial_mish_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_partial_mish_nulless
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_partial_mish_nulless\fP(
+    \fBconst f_string_static_t   \fP\fIglue\fP,
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t    \fP\fIrange\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination with the glue in between, but restricted to the given range.
+.PP
+If the destination string is empty, then no glue is appended.
+.PP
+Skips over NULL characters from glue and source when appending.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B source
+The source string to append.
+
+.TP
+.B range
+A range within the source to restrict the copy from.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_eos\fP if range.start >= source.used.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_prepend.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_prepend.3
new file mode 100644 (file)
index 0000000..8b72406
--- /dev/null
@@ -0,0 +1,51 @@
+.TH f_string_dynamic_partial_prepend "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_partial_prepend
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_partial_prepend\fP(
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t    \fP\fIrange\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination, but restricted to the given range.
+.PP
+Prepend operations require memory move operations and are therefore likely more expensive than append operations.
+.SH PARAMETERS
+.TP
+.B source
+The source string to prepend.
+
+.TP
+.B range
+A range within the source to restrict the copy from.
+
+.TP
+.B destination
+The destination string the source is prepended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_eos\fP if range.start >= source.used.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_prepend_assure.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_prepend_assure.3
new file mode 100644 (file)
index 0000000..3236a17
--- /dev/null
@@ -0,0 +1,51 @@
+.TH f_string_dynamic_partial_prepend_assure "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_partial_prepend_assure
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_partial_prepend_assure\fP(
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t    \fP\fIrange\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination only if the string is not already at the beginning and restricted to the given range.
+.PP
+Prepend operations require memory move operations and are therefore likely more expensive than append operations.
+.SH PARAMETERS
+.TP
+.B source
+The source string to prepend.
+
+.TP
+.B range
+A range within the source to restrict the copy from.
+
+.TP
+.B destination
+The destination string the source is prepended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_eos\fP if range.start >= source.used.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_prepend_assure_nulless.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_prepend_assure_nulless.3
new file mode 100644 (file)
index 0000000..16f06c7
--- /dev/null
@@ -0,0 +1,53 @@
+.TH f_string_dynamic_partial_prepend_assure_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_partial_prepend_assure_nulless
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_partial_prepend_assure_nulless\fP(
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t    \fP\fIrange\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination only if the string is not already at the beginning and restricted to the given range.
+.PP
+Prepend operations require memory move operations and are therefore likely more expensive than append operations.
+.PP
+This ignores NULL characters when comparing both the source and the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source string to prepend.
+
+.TP
+.B range
+A range within the source to restrict the copy from.
+
+.TP
+.B destination
+The destination string the source is prepended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_eos\fP if range.start >= source.used.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_prepend_nulless.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_partial_prepend_nulless.3
new file mode 100644 (file)
index 0000000..eea1591
--- /dev/null
@@ -0,0 +1,51 @@
+.TH f_string_dynamic_partial_prepend_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_partial_prepend_nulless
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_partial_prepend_nulless\fP(
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t    \fP\fIrange\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination, but restricted to the given range.
+.PP
+Prepend operations require memory move operations and are therefore likely more expensive than append operations.
+.SH PARAMETERS
+.TP
+.B source
+The source string to prepend.
+
+.TP
+.B range
+A range within the source to restrict the copy from.
+
+.TP
+.B destination
+The destination string the source is prepended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_eos\fP if range.start >= source.used.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_prepend.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_prepend.3
new file mode 100644 (file)
index 0000000..6815b45
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_dynamic_prepend "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_prepend
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_prepend\fP(
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination.
+.PP
+Prepend operations require memory move operations and are therefore likely more expensive than append operations.
+.SH PARAMETERS
+.TP
+.B source
+The source string to prepend.
+
+.TP
+.B destination
+The destination string the source is prepended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_prepend_assure.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_prepend_assure.3
new file mode 100644 (file)
index 0000000..b5ca584
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_dynamic_prepend_assure "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_prepend_assure
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_prepend_assure\fP(
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination only if the string is not already at the beginning.
+.PP
+Prepend operations require memory move operations and are therefore likely more expensive than append operations.
+.SH PARAMETERS
+.TP
+.B source
+The source string to prepend.
+
+.TP
+.B destination
+The destination string the source is prepended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_prepend_assure_nulless.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_prepend_assure_nulless.3
new file mode 100644 (file)
index 0000000..69b5e7c
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_string_dynamic_prepend_assure_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_prepend_assure_nulless
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_prepend_assure_nulless\fP(
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination only if the string is not already at the beginning.
+.PP
+Prepend operations require memory move operations and are therefore likely more expensive than append operations.
+.PP
+This ignores NULL characters when comparing both the source and the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source string to prepend.
+
+.TP
+.B destination
+The destination string the source is prepended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_prepend_nulless.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_prepend_nulless.3
new file mode 100644 (file)
index 0000000..10144da
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_dynamic_prepend_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_prepend_nulless
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_prepend_nulless\fP(
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination.
+.PP
+Prepend operations require memory move operations and are therefore likely more expensive than append operations.
+.SH PARAMETERS
+.TP
+.B source
+The source string to prepend.
+
+.TP
+.B destination
+The destination string the source is prepended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_resize.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_resize.3
new file mode 100644 (file)
index 0000000..1823ec9
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_string_dynamic_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_resize
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_resize\fP(
+    \fBconst f_array_length_t    \fP\fIlength\fP,
+    \fBf_string_dynamic_t *const \fP\fIbuffer\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamic string.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B buffer
+The string to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_seek_line.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_seek_line.3
new file mode 100644 (file)
index 0000000..4882fd6
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_string_dynamic_seek_line "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_seek_line
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_seek_line\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Seek the buffer location forward until EOL is reached.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to traverse.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The start location will be incremented by seek.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success, but stopped at end of string.
+.br
+\fBF_none_stop\fP on success, but stopped at end of range.
+.br
+\fBF_data_not on success, but there was no string data to seek.
+.br
+\fBF_data_not_stop\fP on success, but the range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_seek_line_to.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_seek_line_to.3
new file mode 100644 (file)
index 0000000..92a85bd
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_string_dynamic_seek_line_to "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_seek_line_to
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_seek_line_to\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_char_t          \fP\fIseek_to_this\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Seek the buffer location forward until the character (1-byte wide) or EOL is reached.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to traverse.
+
+.TP
+.B seek_to_this
+A single-width character representing a character to seek to.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The start location will be incremented by seek.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success, but stopped at end of string.
+.br
+\fBF_none_stop\fP on success, but stopped at end of range.
+.br
+\fBF_data_not\fP on success, but there was no string data to seek.
+.br
+\fBF_data_not_stop\fP on success, but the range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_seek_to.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_seek_to.3
new file mode 100644 (file)
index 0000000..8832a66
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_string_dynamic_seek_to "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_seek_to
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_seek_to\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_char_t          \fP\fIseek_to_this\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Seek the buffer location forward until the character (1-byte wide) is reached.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to traverse.
+
+.TP
+.B seek_to_this
+A single-width character representing a character to seek to.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The start location will be incremented by seek.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success, but stopped at end of string.
+.br
+\fBF_none_stop\fP on success, but stopped at end of range.
+.br
+\fBF_data_not\fP on success, but there was no string data to seek.
+.br
+\fBF_data_not_stop\fP on success, but the range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_terminate.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_terminate.3
new file mode 100644 (file)
index 0000000..eda8cde
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_string_dynamic_terminate "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_terminate
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_terminate\fP(
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Guarantee that an end of string (NULL) exists at the end of the string.
+.PP
+This is intended to be used for anything requiring NULL terminated strings. This will reallocate more space if necessary.
+.PP
+If destination size is 0, then it will be reallocated and have the NULL assigned at index 0.
+.SH PARAMETERS
+.TP
+.B destination
+The new string, which will be allocated or reallocated as necessary.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if string is too large to fit into the buffer.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamic_terminate_after.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamic_terminate_after.3
new file mode 100644 (file)
index 0000000..61db105
--- /dev/null
@@ -0,0 +1,39 @@
+.TH f_string_dynamic_terminate_after "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamic_terminate_after
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamic_terminate_after\fP(
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Guarantee that an end of string (NULL) exists at the end of the string.
+.PP
+This ensures that the terminating NULL not only exists but is not counted in destination.used.
+.PP
+This is intended to be used for anything requiring NULL terminated strings whose used length cannot be counted. This will reallocate more space if necessary.
+.PP
+If destination size is 0, then it will be reallocated and have the NULL assigned at index 0.
+.SH PARAMETERS
+.TP
+.B destination
+The new string, which will be allocated or reallocated as necessary.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if string is too large to fit into the buffer.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamics_adjust.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamics_adjust.3
new file mode 100644 (file)
index 0000000..56956af
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_string_dynamics_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamics_adjust
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamics_adjust\fP(
+    \fBconst f_array_length_t     \fP\fIlength\fP,
+    \fBf_string_dynamics_t *const \fP\fIdynamics\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamic string array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B dynamics
+The array to resize.
+
+.SH RETURN VALUE
+.PP
+
+.br
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.PP
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamics_append.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamics_append.3
new file mode 100644 (file)
index 0000000..6b377f9
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_dynamics_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamics_append
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamics_append\fP(
+    \fBconst f_string_dynamic_t   \fP\fIsource\fP,
+    \fBf_string_dynamics_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source string onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B destination
+The destination strings the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamics_append_all.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamics_append_all.3
new file mode 100644 (file)
index 0000000..71b3f74
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_dynamics_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamics_append_all
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamics_append_all\fP(
+    \fBconst f_string_dynamics_t  \fP\fIsource\fP,
+    \fBf_string_dynamics_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source strings onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source strings to append.
+
+.TP
+.B destination
+The destination strings the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamics_decimate_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamics_decimate_by.3
new file mode 100644 (file)
index 0000000..47735f6
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_dynamics_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamics_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamics_decimate_by\fP(
+    \fBconst f_array_length_t     \fP\fIamount\fP,
+    \fBf_string_dynamics_t *const \fP\fIdynamics\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamic string array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B dynamics
+The array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (size == 0) (or amount is 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamics_decrease_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamics_decrease_by.3
new file mode 100644 (file)
index 0000000..df7ee94
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_dynamics_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamics_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamics_decrease_by\fP(
+    \fBconst f_array_length_t     \fP\fIamount\fP,
+    \fBf_string_dynamics_t *const \fP\fIdynamics\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamic string array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B dynamics
+The array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (size == 0) (or amount is 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamics_increase.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamics_increase.3
new file mode 100644 (file)
index 0000000..ff707dc
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_dynamics_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamics_increase
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamics_increase\fP(
+    \fBconst f_array_length_t     \fP\fIstep\fP,
+    \fBf_string_dynamics_t *const \fP\fIdynamics\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the dynamic string array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B dynamics
+The array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamics_increase_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamics_increase_by.3
new file mode 100644 (file)
index 0000000..5c5f9a2
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_dynamics_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamics_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamics_increase_by\fP(
+    \fBconst f_array_length_t     \fP\fIamount\fP,
+    \fBf_string_dynamics_t *const \fP\fIdynamics\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamic string array to a larger size.
+.PP
+This will resize making the array larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B dynamics
+The array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamics_resize.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamics_resize.3
new file mode 100644 (file)
index 0000000..3bab88d
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_string_dynamics_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamics_resize
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamics_resize\fP(
+    \fBconst f_array_length_t     \fP\fIlength\fP,
+    \fBf_string_dynamics_t *const \fP\fIdynamics\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamic string array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B dynamics
+The array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamicss_adjust.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamicss_adjust.3
new file mode 100644 (file)
index 0000000..42b731b
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_string_dynamicss_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamicss_adjust
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamicss_adjust\fP(
+    \fBconst f_array_length_t      \fP\fIlength\fP,
+    \fBf_string_dynamicss_t *const \fP\fIdynamicss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamics string array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B dynamicss
+The array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamicss_append.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamicss_append.3
new file mode 100644 (file)
index 0000000..8a3b0c5
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_dynamicss_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamicss_append
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamicss_append\fP(
+    \fBconst f_string_dynamics_t   \fP\fIsource\fP,
+    \fBf_string_dynamicss_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source string onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B destination
+The destination strings the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamicss_append_all.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamicss_append_all.3
new file mode 100644 (file)
index 0000000..c98966e
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_dynamicss_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamicss_append_all
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamicss_append_all\fP(
+    \fBconst f_string_dynamicss_t  \fP\fIsource\fP,
+    \fBf_string_dynamicss_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source strings onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source strings to append.
+
+.TP
+.B destination
+The destination strings the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamicss_decimate_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamicss_decimate_by.3
new file mode 100644 (file)
index 0000000..744b9b0
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_dynamicss_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamicss_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamicss_decimate_by\fP(
+    \fBconst f_array_length_t      \fP\fIamount\fP,
+    \fBf_string_dynamicss_t *const \fP\fIdynamicss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamics string array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B dynamicss
+The array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (size == 0) (or amount is 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamicss_decrease_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamicss_decrease_by.3
new file mode 100644 (file)
index 0000000..2fc04a2
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_dynamicss_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamicss_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamicss_decrease_by\fP(
+    \fBconst f_array_length_t      \fP\fIamount\fP,
+    \fBf_string_dynamicss_t *const \fP\fIdynamicss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamics string array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B dynamicss
+The array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (size == 0) (or amount is 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamicss_increase.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamicss_increase.3
new file mode 100644 (file)
index 0000000..5462130
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_dynamicss_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamicss_increase
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamicss_increase\fP(
+    \fBconst f_array_length_t      \fP\fIstep\fP,
+    \fBf_string_dynamicss_t *const \fP\fIdynamicss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the dynamics string array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B dynamicss
+The array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamicss_increase_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamicss_increase_by.3
new file mode 100644 (file)
index 0000000..ff25b22
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_dynamicss_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamicss_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamicss_increase_by\fP(
+    \fBconst f_array_length_t      \fP\fIamount\fP,
+    \fBf_string_dynamicss_t *const \fP\fIdynamicss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamics string array to a larger size.
+.PP
+This will resize making the array larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B dynamicss
+The array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_dynamicss_resize.3 b/level_0/f_string/data/documentation/man/man3/f_string_dynamicss_resize.3
new file mode 100644 (file)
index 0000000..77da0f3
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_string_dynamicss_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_dynamicss_resize
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_string_dynamicss_resize\fP(
+    \fBconst f_array_length_t      \fP\fIlength\fP,
+    \fBf_string_dynamicss_t *const \fP\fIdynamicss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamics string array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B dynamicss
+The array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_map_multis_adjust.3 b/level_0/f_string/data/documentation/man/man3/f_string_map_multis_adjust.3
new file mode 100644 (file)
index 0000000..74ac51d
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_string_map_multis_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_map_multis_adjust
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_string_map_multis_adjust\fP(
+    \fBconst f_array_length_t       \fP\fIlength\fP,
+    \fBf_string_map_multis_t *const \fP\fImap_multis\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the map_multis array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B map_multis
+The map_multis array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_map_multis_append.3 b/level_0/f_string/data/documentation/man/man3/f_string_map_multis_append.3
new file mode 100644 (file)
index 0000000..00ccee4
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_string_map_multis_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_map_multis_append
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_string_map_multis_append\fP(
+    \fBconst f_string_map_multi_t \fP\fIsource\fP,
+    \fBf_string_map_multis_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append a single source map_multi onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source maps to append.
+
+.TP
+.B destination
+The destination maps the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_map_multis_append_all.3 b/level_0/f_string/data/documentation/man/man3/f_string_map_multis_append_all.3
new file mode 100644 (file)
index 0000000..6bc81c9
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_map_multis_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_map_multis_append_all
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_string_map_multis_append_all\fP(
+    \fBconst f_string_map_multis_t \fP\fIsource\fP,
+    \fBf_string_map_multis_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source map_multis onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source maps to append.
+
+.TP
+.B destination
+The destination maps the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_map_multis_decimate_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_map_multis_decimate_by.3
new file mode 100644 (file)
index 0000000..2c5d2f4
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_map_multis_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_map_multis_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_string_map_multis_decimate_by\fP(
+    \fBconst f_array_length_t       \fP\fIamount\fP,
+    \fBf_string_map_multis_t *const \fP\fImap_multis\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the map_multis array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B map_multis
+The map_multis array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_map_multis_decrease_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_map_multis_decrease_by.3
new file mode 100644 (file)
index 0000000..af76576
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_string_map_multis_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_map_multis_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_string_map_multis_decrease_by\fP(
+    \fBconst f_array_length_t       \fP\fIamount\fP,
+    \fBf_string_map_multis_t *const \fP\fImap_multis\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the map_multis array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B map_multis
+The map_multis array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_map_multis_increase.3 b/level_0/f_string/data/documentation/man/man3/f_string_map_multis_increase.3
new file mode 100644 (file)
index 0000000..7cf7bc6
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_map_multis_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_map_multis_increase
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_string_map_multis_increase\fP(
+    \fBconst f_array_length_t       \fP\fIstep\fP,
+    \fBf_string_map_multis_t *const \fP\fImap_multis\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the map_multis array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B map_multis
+The map_multis array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_map_multis_increase_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_map_multis_increase_by.3
new file mode 100644 (file)
index 0000000..1a7b3a8
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_map_multis_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_map_multis_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_string_map_multis_increase_by\fP(
+    \fBconst f_array_length_t       \fP\fIamount\fP,
+    \fBf_string_map_multis_t *const \fP\fImap_multis\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the map_multis array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B map_multis
+The map_multis array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_map_multis_resize.3 b/level_0/f_string/data/documentation/man/man3/f_string_map_multis_resize.3
new file mode 100644 (file)
index 0000000..c544a2c
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_string_map_multis_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_map_multis_resize
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_string_map_multis_resize\fP(
+    \fBconst f_array_length_t       \fP\fIlength\fP,
+    \fBf_string_map_multis_t *const \fP\fImap_multis\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the map_multis array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B map_multis
+The map_multis array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_map_multiss_adjust.3 b/level_0/f_string/data/documentation/man/man3/f_string_map_multiss_adjust.3
new file mode 100644 (file)
index 0000000..195c67d
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_string_map_multiss_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_map_multiss_adjust
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_string_map_multiss_adjust\fP(
+    \fBconst f_array_length_t        \fP\fIlength\fP,
+    \fBf_string_map_multiss_t *const \fP\fImap_multiss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the map_multiss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B map_multiss
+The map_multiss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_map_multiss_append.3 b/level_0/f_string/data/documentation/man/man3/f_string_map_multiss_append.3
new file mode 100644 (file)
index 0000000..98e09b8
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_string_map_multiss_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_map_multiss_append
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_string_map_multiss_append\fP(
+    \fBconst f_string_map_multis_t \fP\fIsource\fP,
+    \fBf_string_map_multiss_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append a single source map_multis onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source maps to append.
+
+.TP
+.B destination
+The destination maps the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_map_multiss_append_all.3 b/level_0/f_string/data/documentation/man/man3/f_string_map_multiss_append_all.3
new file mode 100644 (file)
index 0000000..c51aead
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_map_multiss_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_map_multiss_append_all
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_string_map_multiss_append_all\fP(
+    \fBconst f_string_map_multiss_t \fP\fIsource\fP,
+    \fBf_string_map_multiss_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source map_multiss onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source maps to append.
+
+.TP
+.B destination
+The destination maps the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_map_multiss_decimate_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_map_multiss_decimate_by.3
new file mode 100644 (file)
index 0000000..a8d146d
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_map_multiss_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_map_multiss_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_string_map_multiss_decimate_by\fP(
+    \fBconst f_array_length_t        \fP\fIamount\fP,
+    \fBf_string_map_multiss_t *const \fP\fImap_multiss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the map_multiss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B map_multiss
+The map_multiss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_map_multiss_decrease_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_map_multiss_decrease_by.3
new file mode 100644 (file)
index 0000000..092331b
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_string_map_multiss_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_map_multiss_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_string_map_multiss_decrease_by\fP(
+    \fBconst f_array_length_t        \fP\fIamount\fP,
+    \fBf_string_map_multiss_t *const \fP\fImap_multiss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the map_multiss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B map_multiss
+The map_multiss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_map_multiss_increase.3 b/level_0/f_string/data/documentation/man/man3/f_string_map_multiss_increase.3
new file mode 100644 (file)
index 0000000..4832d6c
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_map_multiss_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_map_multiss_increase
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_string_map_multiss_increase\fP(
+    \fBconst f_array_length_t        \fP\fIstep\fP,
+    \fBf_string_map_multiss_t *const \fP\fImap_multiss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the map_multiss array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B map_multiss
+The map_multiss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_map_multiss_increase_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_map_multiss_increase_by.3
new file mode 100644 (file)
index 0000000..89fd760
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_map_multiss_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_map_multiss_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_string_map_multiss_increase_by\fP(
+    \fBconst f_array_length_t        \fP\fIamount\fP,
+    \fBf_string_map_multiss_t *const \fP\fImap_multiss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the map_multiss array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B map_multiss
+The map_multiss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_map_multiss_resize.3 b/level_0/f_string/data/documentation/man/man3/f_string_map_multiss_resize.3
new file mode 100644 (file)
index 0000000..11bb4b5
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_string_map_multiss_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_map_multiss_resize
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_string_map_multiss_resize\fP(
+    \fBconst f_array_length_t        \fP\fIlength\fP,
+    \fBf_string_map_multiss_t *const \fP\fImap_multiss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the map_multiss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B map_multiss
+The map_multiss array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_maps_adjust.3 b/level_0/f_string/data/documentation/man/man3/f_string_maps_adjust.3
new file mode 100644 (file)
index 0000000..53b4aa9
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_string_maps_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_maps_adjust
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_string_maps_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_string_maps_t *const \fP\fImaps\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string maps array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B maps
+The string maps array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_maps_append.3 b/level_0/f_string/data/documentation/man/man3/f_string_maps_append.3
new file mode 100644 (file)
index 0000000..a8cc371
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_string_maps_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_maps_append
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_string_maps_append\fP(
+    \fBconst f_string_map_t   \fP\fIsource\fP,
+    \fBf_string_maps_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append a single source map onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source maps to append.
+
+.TP
+.B destination
+The destination maps the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_maps_append_all.3 b/level_0/f_string/data/documentation/man/man3/f_string_maps_append_all.3
new file mode 100644 (file)
index 0000000..93a9c24
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_maps_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_maps_append_all
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_string_maps_append_all\fP(
+    \fBconst f_string_maps_t  \fP\fIsource\fP,
+    \fBf_string_maps_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source maps onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source maps to append.
+
+.TP
+.B destination
+The destination maps the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_maps_decimate_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_maps_decimate_by.3
new file mode 100644 (file)
index 0000000..3d6f986
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_maps_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_maps_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_string_maps_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_string_maps_t *const \fP\fImaps\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string maps array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B maps
+The string maps array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_maps_decrease_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_maps_decrease_by.3
new file mode 100644 (file)
index 0000000..fef588b
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_string_maps_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_maps_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_string_maps_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_string_maps_t *const \fP\fImaps\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string maps array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B maps
+The string maps array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_maps_increase.3 b/level_0/f_string/data/documentation/man/man3/f_string_maps_increase.3
new file mode 100644 (file)
index 0000000..7bdcaee
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_maps_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_maps_increase
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_string_maps_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_string_maps_t *const \fP\fImaps\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string maps array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B maps
+The string maps array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_maps_increase_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_maps_increase_by.3
new file mode 100644 (file)
index 0000000..6c5db8b
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_maps_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_maps_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_string_maps_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_string_maps_t *const \fP\fImaps\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string maps array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B maps
+The string maps array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_maps_resize.3 b/level_0/f_string/data/documentation/man/man3/f_string_maps_resize.3
new file mode 100644 (file)
index 0000000..ad10c51
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_string_maps_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_maps_resize
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_string_maps_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_string_maps_t *const \fP\fImaps\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string maps array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B maps
+The string maps array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_mapss_adjust.3 b/level_0/f_string/data/documentation/man/man3/f_string_mapss_adjust.3
new file mode 100644 (file)
index 0000000..e62d916
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_string_mapss_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_mapss_adjust
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_string_mapss_adjust\fP(
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBf_string_mapss_t *const \fP\fImapss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string mapss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B mapss
+The string mapss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_mapss_append.3 b/level_0/f_string/data/documentation/man/man3/f_string_mapss_append.3
new file mode 100644 (file)
index 0000000..2851732
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_string_mapss_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_mapss_append
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_string_mapss_append\fP(
+    \fBconst f_string_maps_t   \fP\fIsource\fP,
+    \fBf_string_mapss_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append a single source maps onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source mapss to append.
+
+.TP
+.B destination
+The destination mapss the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_mapss_append_all.3 b/level_0/f_string/data/documentation/man/man3/f_string_mapss_append_all.3
new file mode 100644 (file)
index 0000000..19e6ecd
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_mapss_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_mapss_append_all
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_string_mapss_append_all\fP(
+    \fBconst f_string_mapss_t  \fP\fIsource\fP,
+    \fBf_string_mapss_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source mapss onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source mapss to append.
+
+.TP
+.B destination
+The destination mapss the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_mapss_decimate_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_mapss_decimate_by.3
new file mode 100644 (file)
index 0000000..7cfc779
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_mapss_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_mapss_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_string_mapss_decimate_by\fP(
+    \fBconst f_array_length_t  \fP\fIamount\fP,
+    \fBf_string_mapss_t *const \fP\fImapss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string mapss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B mapss
+The string mapss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_mapss_decrease_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_mapss_decrease_by.3
new file mode 100644 (file)
index 0000000..2796b27
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_mapss_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_mapss_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_string_mapss_decrease_by\fP(
+    \fBconst f_array_length_t  \fP\fIamount\fP,
+    \fBf_string_mapss_t *const \fP\fImapss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string mapss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B mapss
+The string mapss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_mapss_increase.3 b/level_0/f_string/data/documentation/man/man3/f_string_mapss_increase.3
new file mode 100644 (file)
index 0000000..f4d19ee
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_mapss_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_mapss_increase
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_string_mapss_increase\fP(
+    \fBconst f_array_length_t  \fP\fIstep\fP,
+    \fBf_string_mapss_t *const \fP\fImapss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string mapss array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B mapss
+The string mapss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size) (or step is 0).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_mapss_increase_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_mapss_increase_by.3
new file mode 100644 (file)
index 0000000..1c671f5
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_mapss_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_mapss_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_string_mapss_increase_by\fP(
+    \fBconst f_array_length_t  \fP\fIamount\fP,
+    \fBf_string_mapss_t *const \fP\fImapss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string mapss array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B mapss
+The string mapss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_mapss_resize.3 b/level_0/f_string/data/documentation/man/man3/f_string_mapss_resize.3
new file mode 100644 (file)
index 0000000..31ced21
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_string_mapss_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_mapss_resize
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_string_mapss_resize\fP(
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBf_string_mapss_t *const \fP\fImapss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string mapss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B mapss
+The string mapss array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_mash.3 b/level_0/f_string/data/documentation/man/man3/f_string_mash.3
new file mode 100644 (file)
index 0000000..71f7436
--- /dev/null
@@ -0,0 +1,57 @@
+.TH f_string_mash "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_mash
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_string_mash\fP(
+    \fBconst f_string_t          \fP\fIglue\fP,
+    \fBconst f_array_length_t    \fP\fIglue_length\fP,
+    \fBconst f_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t    \fP\fIlength\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination with the glue in between.
+.PP
+If the destination string is empty, then no glue is appended.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B glue_length
+The number of bytes the glue takes up.
+
+.TP
+.B source
+The source string to append.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_mash_nulless.3 b/level_0/f_string/data/documentation/man/man3/f_string_mash_nulless.3
new file mode 100644 (file)
index 0000000..2e43794
--- /dev/null
@@ -0,0 +1,59 @@
+.TH f_string_mash_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_mash_nulless
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_string_mash_nulless\fP(
+    \fBconst f_string_t          \fP\fIglue\fP,
+    \fBconst f_array_length_t    \fP\fIglue_length\fP,
+    \fBconst f_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t    \fP\fIlength\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination with the glue in between.
+.PP
+If the destination string is empty, then no glue is appended.
+.PP
+Skips over NULL characters from glue and source when appending.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B glue_length
+The number of bytes the glue takes up.
+
+.TP
+.B source
+The source string to append.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_mish.3 b/level_0/f_string/data/documentation/man/man3/f_string_mish.3
new file mode 100644 (file)
index 0000000..47659fb
--- /dev/null
@@ -0,0 +1,57 @@
+.TH f_string_mish "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_mish
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_string_mish\fP(
+    \fBconst f_string_t          \fP\fIglue\fP,
+    \fBconst f_array_length_t    \fP\fIglue_length\fP,
+    \fBconst f_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t    \fP\fIlength\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination with the glue in between.
+.PP
+If the destination string is empty, then no glue is appended.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B glue_length
+The number of bytes the glue takes up.
+
+.TP
+.B source
+The source string to append.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_mish_nulless.3 b/level_0/f_string/data/documentation/man/man3/f_string_mish_nulless.3
new file mode 100644 (file)
index 0000000..39f5e32
--- /dev/null
@@ -0,0 +1,59 @@
+.TH f_string_mish_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_mish_nulless
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_string_mish_nulless\fP(
+    \fBconst f_string_t          \fP\fIglue\fP,
+    \fBconst f_array_length_t    \fP\fIglue_length\fP,
+    \fBconst f_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t    \fP\fIlength\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination with the glue in between.
+.PP
+If the destination string is empty, then no glue is appended.
+.PP
+Skips over NULL characters from glue and source when appending.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B glue_length
+The number of bytes the glue takes up.
+
+.TP
+.B source
+The source string to append.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_prepend.3 b/level_0/f_string/data/documentation/man/man3/f_string_prepend.3
new file mode 100644 (file)
index 0000000..898f5ac
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_string_prepend "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_prepend
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_string_prepend\fP(
+    \fBconst f_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t    \fP\fIlength\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination.
+.PP
+Prepend operations require memory move operations and are therefore likely more expensive than append operations.
+.SH PARAMETERS
+.TP
+.B source
+The source string to prepend.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The destination string the source is prepended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_prepend_assure.3 b/level_0/f_string/data/documentation/man/man3/f_string_prepend_assure.3
new file mode 100644 (file)
index 0000000..ae318c6
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_string_prepend_assure "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_prepend_assure
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_string_prepend_assure\fP(
+    \fBconst f_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t    \fP\fIlength\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination only if the string is not already at the beginning.
+.PP
+Prepend operations require memory move operations and are therefore likely more expensive than append operations.
+.PP
+This ignores NULL characters when comparing both the source and the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source string to prepend.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The destination string the source is prepended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_prepend_assure_nulless.3 b/level_0/f_string/data/documentation/man/man3/f_string_prepend_assure_nulless.3
new file mode 100644 (file)
index 0000000..ddaa132
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_string_prepend_assure_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_prepend_assure_nulless
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_string_prepend_assure_nulless\fP(
+    \fBconst f_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t    \fP\fIlength\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination only if the string is not already at the beginning.
+.PP
+Prepend operations require memory move operations and are therefore likely more expensive than append operations.
+.PP
+This ignores NULL characters when comparing both the source and the destination. Skips over NULL characters from source when prepending.
+.SH PARAMETERS
+.TP
+.B source
+The source string to prepend.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The destination string the source is prepended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_prepend_nulless.3 b/level_0/f_string/data/documentation/man/man3/f_string_prepend_nulless.3
new file mode 100644 (file)
index 0000000..f8f05e4
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_string_prepend_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_prepend_nulless
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_string_prepend_nulless\fP(
+    \fBconst f_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t    \fP\fIlength\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination, but only if the string is not already at the beginning.
+.PP
+Prepend operations require memory move operations and are therefore likely more expensive than append operations.
+.PP
+This ignores NULL characters when comparing both the source and the destination. Skips over NULL characters from source when prepending.
+.SH PARAMETERS
+.TP
+.B source
+The source string to prepend.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The destination string the source is prepended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_quantitys_adjust.3 b/level_0/f_string/data/documentation/man/man3/f_string_quantitys_adjust.3
new file mode 100644 (file)
index 0000000..844584d
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_string_quantitys_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_quantitys_adjust
+.SH SYNOPSIS
+.nf
+.B #include <quantity.h>
+.sp
+\fBf_status_t f_string_quantitys_adjust\fP(
+    \fBconst f_array_length_t      \fP\fIlength\fP,
+    \fBf_string_quantitys_t *const \fP\fIquantitys\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string quantitys array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B quantitys
+The string quantitys array to resize.
+
+.SH RETURN VALUE
+.PP
+
+.br
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_quantitys_append.3 b/level_0/f_string/data/documentation/man/man3/f_string_quantitys_append.3
new file mode 100644 (file)
index 0000000..3b4a3e7
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_string_quantitys_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_quantitys_append
+.SH SYNOPSIS
+.nf
+.B #include <quantity.h>
+.sp
+\fBf_status_t f_string_quantitys_append\fP(
+    \fBconst f_string_quantity_t   \fP\fIsource\fP,
+    \fBf_string_quantitys_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source quantity onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source quantity to append.
+
+.TP
+.B destination
+The destination quantitys the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_quantitys_append_all.3 b/level_0/f_string/data/documentation/man/man3/f_string_quantitys_append_all.3
new file mode 100644 (file)
index 0000000..bee7958
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_string_quantitys_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_quantitys_append_all
+.SH SYNOPSIS
+.nf
+.B #include <quantity.h>
+.sp
+\fBf_status_t f_string_quantitys_append_all\fP(
+    \fBconst f_string_quantitys_t  \fP\fIsource\fP,
+    \fBf_string_quantitys_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source quantitys onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source quantitys to append.
+
+.TP
+.B destination
+The destination quantitys the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_quantitys_decimate_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_quantitys_decimate_by.3
new file mode 100644 (file)
index 0000000..d7e21f2
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_quantitys_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_quantitys_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <quantity.h>
+.sp
+\fBf_status_t f_string_quantitys_decimate_by\fP(
+    \fBconst f_array_length_t      \fP\fIamount\fP,
+    \fBf_string_quantitys_t *const \fP\fIquantitys\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string quantitys array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B quantitys
+The string quantitys array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_quantitys_decrease_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_quantitys_decrease_by.3
new file mode 100644 (file)
index 0000000..d130b38
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_string_quantitys_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_quantitys_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <quantity.h>
+.sp
+\fBf_status_t f_string_quantitys_decrease_by\fP(
+    \fBconst f_array_length_t      \fP\fIamount\fP,
+    \fBf_string_quantitys_t *const \fP\fIquantitys\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string quantitys array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B quantitys
+The string quantitys array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_quantitys_increase.3 b/level_0/f_string/data/documentation/man/man3/f_string_quantitys_increase.3
new file mode 100644 (file)
index 0000000..d557d2a
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_quantitys_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_quantitys_increase
+.SH SYNOPSIS
+.nf
+.B #include <quantity.h>
+.sp
+\fBf_status_t f_string_quantitys_increase\fP(
+    \fBconst f_array_length_t      \fP\fIstep\fP,
+    \fBf_string_quantitys_t *const \fP\fIquantitys\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string quantitys array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B quantitys
+The string quantitys array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_quantitys_increase_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_quantitys_increase_by.3
new file mode 100644 (file)
index 0000000..e4e0fb5
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_quantitys_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_quantitys_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <quantity.h>
+.sp
+\fBf_status_t f_string_quantitys_increase_by\fP(
+    \fBconst f_array_length_t      \fP\fIamount\fP,
+    \fBf_string_quantitys_t *const \fP\fIquantitys\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string quantitys array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B quantitys
+The string quantitys array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_quantitys_resize.3 b/level_0/f_string/data/documentation/man/man3/f_string_quantitys_resize.3
new file mode 100644 (file)
index 0000000..b20d16c
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_string_quantitys_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_quantitys_resize
+.SH SYNOPSIS
+.nf
+.B #include <quantity.h>
+.sp
+\fBf_status_t f_string_quantitys_resize\fP(
+    \fBconst f_array_length_t      \fP\fIlength\fP,
+    \fBf_string_quantitys_t *const \fP\fIquantitys\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string quantitys array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B quantitys
+The string quantitys array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_quantityss_adjust.3 b/level_0/f_string/data/documentation/man/man3/f_string_quantityss_adjust.3
new file mode 100644 (file)
index 0000000..d5a4349
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_string_quantityss_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_quantityss_adjust
+.SH SYNOPSIS
+.nf
+.B #include <quantity.h>
+.sp
+\fBf_status_t f_string_quantityss_adjust\fP(
+    \fBconst f_array_length_t       \fP\fIlength\fP,
+    \fBf_string_quantityss_t *const \fP\fIquantityss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string quantityss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B quantityss
+The string quantityss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_quantityss_append.3 b/level_0/f_string/data/documentation/man/man3/f_string_quantityss_append.3
new file mode 100644 (file)
index 0000000..efd4103
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_string_quantityss_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_quantityss_append
+.SH SYNOPSIS
+.nf
+.B #include <quantity.h>
+.sp
+\fBf_status_t f_string_quantityss_append\fP(
+    \fBconst f_string_quantitys_t   \fP\fIsource\fP,
+    \fBf_string_quantityss_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source quantitys onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source quantitys to append.
+
+.TP
+.B destination
+The destination quantityss the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_quantityss_append_all.3 b/level_0/f_string/data/documentation/man/man3/f_string_quantityss_append_all.3
new file mode 100644 (file)
index 0000000..8191194
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_string_quantityss_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_quantityss_append_all
+.SH SYNOPSIS
+.nf
+.B #include <quantity.h>
+.sp
+\fBf_status_t f_string_quantityss_append_all\fP(
+    \fBconst f_string_quantityss_t  \fP\fIsource\fP,
+    \fBf_string_quantityss_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source quantityss onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source quantityss to append.
+
+.TP
+.B destination
+The destination quantityss the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_quantityss_decimate_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_quantityss_decimate_by.3
new file mode 100644 (file)
index 0000000..f910294
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_quantityss_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_quantityss_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <quantity.h>
+.sp
+\fBf_status_t f_string_quantityss_decimate_by\fP(
+    \fBconst f_array_length_t       \fP\fIamount\fP,
+    \fBf_string_quantityss_t *const \fP\fIquantityss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string quantityss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B quantityss
+The string quantityss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_quantityss_decrease_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_quantityss_decrease_by.3
new file mode 100644 (file)
index 0000000..c4a7db8
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_string_quantityss_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_quantityss_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <quantity.h>
+.sp
+\fBf_status_t f_string_quantityss_decrease_by\fP(
+    \fBconst f_array_length_t       \fP\fIamount\fP,
+    \fBf_string_quantityss_t *const \fP\fIquantityss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string quantityss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B quantityss
+The string quantityss array to resize.
+
+.SH RETURN VALUE
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_quantityss_increase.3 b/level_0/f_string/data/documentation/man/man3/f_string_quantityss_increase.3
new file mode 100644 (file)
index 0000000..7f85b8e
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_quantityss_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_quantityss_increase
+.SH SYNOPSIS
+.nf
+.B #include <quantity.h>
+.sp
+\fBf_status_t f_string_quantityss_increase\fP(
+    \fBconst f_array_length_t       \fP\fIstep\fP,
+    \fBf_string_quantityss_t *const \fP\fIquantityss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string quantityss array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B quantityss
+The string quantityss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_quantityss_increase_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_quantityss_increase_by.3
new file mode 100644 (file)
index 0000000..f428f9b
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_quantityss_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_quantityss_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <quantity.h>
+.sp
+\fBf_status_t f_string_quantityss_increase_by\fP(
+    \fBconst f_array_length_t       \fP\fIamount\fP,
+    \fBf_string_quantityss_t *const \fP\fIquantityss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string quantityss array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B quantityss
+The string quantityss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_quantityss_resize.3 b/level_0/f_string/data/documentation/man/man3/f_string_quantityss_resize.3
new file mode 100644 (file)
index 0000000..1c14901
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_string_quantityss_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_quantityss_resize
+.SH SYNOPSIS
+.nf
+.B #include <quantity.h>
+.sp
+\fBf_status_t f_string_quantityss_resize\fP(
+    \fBconst f_array_length_t       \fP\fIlength\fP,
+    \fBf_string_quantityss_t *const \fP\fIquantityss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string quantityss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B quantityss
+The string quantityss array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_ranges_adjust.3 b/level_0/f_string/data/documentation/man/man3/f_string_ranges_adjust.3
new file mode 100644 (file)
index 0000000..9f7ff12
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_string_ranges_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_ranges_adjust
+.SH SYNOPSIS
+.nf
+.B #include <range.h>
+.sp
+\fBf_status_t f_string_ranges_adjust\fP(
+    \fBconst f_array_length_t   \fP\fIlength\fP,
+    \fBf_string_ranges_t *const \fP\fIranges\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string ranges array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B ranges
+The string ranges array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_ranges_append.3 b/level_0/f_string/data/documentation/man/man3/f_string_ranges_append.3
new file mode 100644 (file)
index 0000000..93c3360
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_string_ranges_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_ranges_append
+.SH SYNOPSIS
+.nf
+.B #include <range.h>
+.sp
+\fBf_status_t f_string_ranges_append\fP(
+    \fBconst f_string_range_t   \fP\fIsource\fP,
+    \fBf_string_ranges_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source range onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source range to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_ranges_append_all.3 b/level_0/f_string/data/documentation/man/man3/f_string_ranges_append_all.3
new file mode 100644 (file)
index 0000000..512d710
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_string_ranges_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_ranges_append_all
+.SH SYNOPSIS
+.nf
+.B #include <range.h>
+.sp
+\fBf_status_t f_string_ranges_append_all\fP(
+    \fBconst f_string_ranges_t  \fP\fIsource\fP,
+    \fBf_string_ranges_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source ranges onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source ranges to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_ranges_decimate_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_ranges_decimate_by.3
new file mode 100644 (file)
index 0000000..3e4e6c6
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_ranges_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_ranges_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <range.h>
+.sp
+\fBf_status_t f_string_ranges_decimate_by\fP(
+    \fBconst f_array_length_t   \fP\fIamount\fP,
+    \fBf_string_ranges_t *const \fP\fIranges\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string ranges array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B ranges
+The string ranges array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_ranges_decrease_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_ranges_decrease_by.3
new file mode 100644 (file)
index 0000000..53d1faf
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_ranges_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_ranges_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <range.h>
+.sp
+\fBf_status_t f_string_ranges_decrease_by\fP(
+    \fBconst f_array_length_t   \fP\fIamount\fP,
+    \fBf_string_ranges_t *const \fP\fIranges\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string ranges array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B ranges
+The string ranges array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_ranges_increase.3 b/level_0/f_string/data/documentation/man/man3/f_string_ranges_increase.3
new file mode 100644 (file)
index 0000000..86f003f
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_ranges_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_ranges_increase
+.SH SYNOPSIS
+.nf
+.B #include <range.h>
+.sp
+\fBf_status_t f_string_ranges_increase\fP(
+    \fBconst f_array_length_t   \fP\fIstep\fP,
+    \fBf_string_ranges_t *const \fP\fIranges\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string ranges array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B ranges
+The string ranges array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_ranges_increase_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_ranges_increase_by.3
new file mode 100644 (file)
index 0000000..875d376
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_ranges_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_ranges_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <range.h>
+.sp
+\fBf_status_t f_string_ranges_increase_by\fP(
+    \fBconst f_array_length_t   \fP\fIamount\fP,
+    \fBf_string_ranges_t *const \fP\fIranges\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string ranges array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B ranges
+The string ranges array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_ranges_resize.3 b/level_0/f_string/data/documentation/man/man3/f_string_ranges_resize.3
new file mode 100644 (file)
index 0000000..6886ccf
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_string_ranges_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_ranges_resize
+.SH SYNOPSIS
+.nf
+.B #include <range.h>
+.sp
+\fBf_status_t f_string_ranges_resize\fP(
+    \fBconst f_array_length_t   \fP\fIlength\fP,
+    \fBf_string_ranges_t *const \fP\fIranges\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string ranges array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B ranges
+The string ranges array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_rangess_adjust.3 b/level_0/f_string/data/documentation/man/man3/f_string_rangess_adjust.3
new file mode 100644 (file)
index 0000000..9c5d9e9
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_string_rangess_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_rangess_adjust
+.SH SYNOPSIS
+.nf
+.B #include <range.h>
+.sp
+\fBf_status_t f_string_rangess_adjust\fP(
+    \fBconst f_array_length_t    \fP\fIlength\fP,
+    \fBf_string_rangess_t *const \fP\fIrangess\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string rangess array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B rangess
+The string rangess array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_rangess_append.3 b/level_0/f_string/data/documentation/man/man3/f_string_rangess_append.3
new file mode 100644 (file)
index 0000000..b5e02ae
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_string_rangess_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_rangess_append
+.SH SYNOPSIS
+.nf
+.B #include <range.h>
+.sp
+\fBf_status_t f_string_rangess_append\fP(
+    \fBconst f_string_ranges_t   \fP\fIsource\fP,
+    \fBf_string_rangess_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source ranges onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source ranges to append.
+
+.TP
+.B destination
+The destination rangess the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_rangess_append_all.3 b/level_0/f_string/data/documentation/man/man3/f_string_rangess_append_all.3
new file mode 100644 (file)
index 0000000..6ae2001
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_string_rangess_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_rangess_append_all
+.SH SYNOPSIS
+.nf
+.B #include <range.h>
+.sp
+\fBf_status_t f_string_rangess_append_all\fP(
+    \fBconst f_string_rangess_t  \fP\fIsource\fP,
+    \fBf_string_rangess_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source rangess onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source rangess to append.
+
+.TP
+.B destination
+The destination rangess the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_rangess_decimate_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_rangess_decimate_by.3
new file mode 100644 (file)
index 0000000..16eb8d3
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_rangess_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_rangess_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <range.h>
+.sp
+\fBf_status_t f_string_rangess_decimate_by\fP(
+    \fBconst f_array_length_t    \fP\fIamount\fP,
+    \fBf_string_rangess_t *const \fP\fIrangess\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string rangess array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B rangess
+The string rangess array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_rangess_decrease_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_rangess_decrease_by.3
new file mode 100644 (file)
index 0000000..1496d88
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_rangess_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_rangess_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <range.h>
+.sp
+\fBf_status_t f_string_rangess_decrease_by\fP(
+    \fBconst f_array_length_t    \fP\fIamount\fP,
+    \fBf_string_rangess_t *const \fP\fIrangess\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string rangess array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B rangess
+The string rangess array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_rangess_increase.3 b/level_0/f_string/data/documentation/man/man3/f_string_rangess_increase.3
new file mode 100644 (file)
index 0000000..99ef4bd
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_rangess_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_rangess_increase
+.SH SYNOPSIS
+.nf
+.B #include <range.h>
+.sp
+\fBf_status_t f_string_rangess_increase\fP(
+    \fBconst f_array_length_t    \fP\fIstep\fP,
+    \fBf_string_rangess_t *const \fP\fIrangess\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string rangess array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B rangess
+The string rangess array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_rangess_increase_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_rangess_increase_by.3
new file mode 100644 (file)
index 0000000..af3eba5
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_rangess_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_rangess_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <range.h>
+.sp
+\fBf_status_t f_string_rangess_increase_by\fP(
+    \fBconst f_array_length_t    \fP\fIamount\fP,
+    \fBf_string_rangess_t *const \fP\fIrangess\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string rangess array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B rangess
+The string rangess array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_rangess_resize.3 b/level_0/f_string/data/documentation/man/man3/f_string_rangess_resize.3
new file mode 100644 (file)
index 0000000..23b7c71
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_string_rangess_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_rangess_resize
+.SH SYNOPSIS
+.nf
+.B #include <range.h>
+.sp
+\fBf_status_t f_string_rangess_resize\fP(
+    \fBconst f_array_length_t    \fP\fIlength\fP,
+    \fBf_string_rangess_t *const \fP\fIrangess\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string rangess array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B rangess
+The string rangess array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_seek_line.3 b/level_0/f_string/data/documentation/man/man3/f_string_seek_line.3
new file mode 100644 (file)
index 0000000..d5dda7a
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_seek_line "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_seek_line
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_string_seek_line\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Seek the string location forward until EOL is reached.
+.SH PARAMETERS
+.TP
+.B string
+The string to traverse.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The start location will be incremented by seek.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_stop\fP on success, but stopped at end of range.
+.br
+\fBF_data_not_stop\fP on success, but the range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_seek_line_to.3 b/level_0/f_string/data/documentation/man/man3/f_string_seek_line_to.3
new file mode 100644 (file)
index 0000000..4bf8661
--- /dev/null
@@ -0,0 +1,45 @@
+.TH f_string_seek_line_to "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_seek_line_to
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_string_seek_line_to\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_char_t          \fP\fIseek_to\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Seek the string location forward until the character (1-byte wide) or EOL is reached.
+.SH PARAMETERS
+.TP
+.B string
+The string to traverse.
+
+.TP
+.B seek_to
+A single-width character representing a character to seek to.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The start location will be incremented by seek.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eol\fP on success, but stopped at EOL.
+.br
+\fBF_none_stop\fP on success, but stopped at the stop location.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_seek_to.3 b/level_0/f_string/data/documentation/man/man3/f_string_seek_to.3
new file mode 100644 (file)
index 0000000..afb9855
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_string_seek_to "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_seek_to
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_string_seek_to\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_char_t          \fP\fIseek_to\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Seek the string location forward until the character (1-byte wide) is reached.
+.SH PARAMETERS
+.TP
+.B string
+The string to traverse.
+
+.TP
+.B seek_to
+A single-width character representing a character to seek to.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The start location will be incremented by seek.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_stop\fP on success, but stopped at the stop location.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_complete_not_utf\fP (with error bit) if character is an incomplete UTF-8 fragment.
+.br
+\fBF_complete_not_utf_stop\fP (with error bit) if the stop location is reached before the complete UTF-8 character can be processed.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_triples_adjust.3 b/level_0/f_string/data/documentation/man/man3/f_string_triples_adjust.3
new file mode 100644 (file)
index 0000000..4f641ea
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_string_triples_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_triples_adjust
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_string_triples_adjust\fP(
+    \fBconst f_array_length_t    \fP\fIlength\fP,
+    \fBf_string_triples_t *const \fP\fItriples\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string triples array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B triples
+The string triples array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_triples_append.3 b/level_0/f_string/data/documentation/man/man3/f_string_triples_append.3
new file mode 100644 (file)
index 0000000..6fe8e12
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_triples_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_triples_append
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_string_triples_append\fP(
+    \fBconst f_string_triple_t   \fP\fIsource\fP,
+    \fBf_string_triples_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source triples onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source triple to append.
+
+.TP
+.B destination
+The destination triples the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_triples_append_all.3 b/level_0/f_string/data/documentation/man/man3/f_string_triples_append_all.3
new file mode 100644 (file)
index 0000000..e730d5d
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_triples_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_triples_append_all
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_string_triples_append_all\fP(
+    \fBconst f_string_triples_t  \fP\fIsource\fP,
+    \fBf_string_triples_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source triples onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source triples to append.
+
+.TP
+.B destination
+The destination triples the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_triples_decimate_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_triples_decimate_by.3
new file mode 100644 (file)
index 0000000..47ce499
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_triples_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_triples_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_string_triples_decimate_by\fP(
+    \fBconst f_array_length_t    \fP\fIamount\fP,
+    \fBf_string_triples_t *const \fP\fItriples\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string triples array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B triples
+The string triples array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_triples_decrease_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_triples_decrease_by.3
new file mode 100644 (file)
index 0000000..968e0e9
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_triples_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_triples_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_string_triples_decrease_by\fP(
+    \fBconst f_array_length_t    \fP\fIamount\fP,
+    \fBf_string_triples_t *const \fP\fItriples\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string triples array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B triples
+The string triples array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_triples_increase.3 b/level_0/f_string/data/documentation/man/man3/f_string_triples_increase.3
new file mode 100644 (file)
index 0000000..8a5127b
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_triples_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_triples_increase
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_string_triples_increase\fP(
+    \fBconst f_array_length_t    \fP\fIstep\fP,
+    \fBf_string_triples_t *const \fP\fItriples\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string triples array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B triples
+The string triples array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_triples_increase_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_triples_increase_by.3
new file mode 100644 (file)
index 0000000..ae5a446
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_triples_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_triples_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_string_triples_increase_by\fP(
+    \fBconst f_array_length_t    \fP\fIamount\fP,
+    \fBf_string_triples_t *const \fP\fItriples\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string triples array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B triples
+The string triples array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_triples_resize.3 b/level_0/f_string/data/documentation/man/man3/f_string_triples_resize.3
new file mode 100644 (file)
index 0000000..0b36d42
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_string_triples_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_triples_resize
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_string_triples_resize\fP(
+    \fBconst f_array_length_t    \fP\fIlength\fP,
+    \fBf_string_triples_t *const \fP\fItriples\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string triples array.
+.PP
+Errors (with error bit) from: f_memory_resize().
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B triples
+The string triples array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_tripless_adjust.3 b/level_0/f_string/data/documentation/man/man3/f_string_tripless_adjust.3
new file mode 100644 (file)
index 0000000..8ca4cc6
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_string_tripless_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_tripless_adjust
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_string_tripless_adjust\fP(
+    \fBconst f_array_length_t     \fP\fIlength\fP,
+    \fBf_string_tripless_t *const \fP\fItripless\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string tripless array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B tripless
+The string tripless array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_tripless_append.3 b/level_0/f_string/data/documentation/man/man3/f_string_tripless_append.3
new file mode 100644 (file)
index 0000000..eb206a8
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_tripless_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_tripless_append
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_string_tripless_append\fP(
+    \fBconst f_string_triples_t   \fP\fIsource\fP,
+    \fBf_string_tripless_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source triples onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source triples to append.
+
+.TP
+.B destination
+The destination tripless the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_tripless_append_all.3 b/level_0/f_string/data/documentation/man/man3/f_string_tripless_append_all.3
new file mode 100644 (file)
index 0000000..b8a84b5
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_tripless_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_tripless_append_all
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_string_tripless_append_all\fP(
+    \fBconst f_string_tripless_t  \fP\fIsource\fP,
+    \fBf_string_tripless_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source tripless onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source tripless to append.
+
+.TP
+.B destination
+The destination tripless the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_tripless_decimate_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_tripless_decimate_by.3
new file mode 100644 (file)
index 0000000..852bd0a
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_tripless_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_tripless_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_string_tripless_decimate_by\fP(
+    \fBconst f_array_length_t     \fP\fIamount\fP,
+    \fBf_string_tripless_t *const \fP\fItripless\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string tripless array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B tripless
+The string tripless array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_tripless_decrease_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_tripless_decrease_by.3
new file mode 100644 (file)
index 0000000..fb4246e
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_string_tripless_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_tripless_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_string_tripless_decrease_by\fP(
+    \fBconst f_array_length_t     \fP\fIamount\fP,
+    \fBf_string_tripless_t *const \fP\fItripless\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string tripless array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B tripless
+The string tripless array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_tripless_increase.3 b/level_0/f_string/data/documentation/man/man3/f_string_tripless_increase.3
new file mode 100644 (file)
index 0000000..5aa26b2
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_tripless_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_tripless_increase
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_string_tripless_increase\fP(
+    \fBconst f_array_length_t     \fP\fIstep\fP,
+    \fBf_string_tripless_t *const \fP\fItripless\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string tripless array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B tripless
+The string tripless array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_tripless_increase_by.3 b/level_0/f_string/data/documentation/man/man3/f_string_tripless_increase_by.3
new file mode 100644 (file)
index 0000000..6bb9869
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_string_tripless_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_tripless_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_string_tripless_increase_by\fP(
+    \fBconst f_array_length_t     \fP\fIamount\fP,
+    \fBf_string_tripless_t *const \fP\fItripless\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string tripless array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B tripless
+The string tripless array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_string/data/documentation/man/man3/f_string_tripless_resize.3 b/level_0/f_string/data/documentation/man/man3/f_string_tripless_resize.3
new file mode 100644 (file)
index 0000000..7d35410
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_string_tripless_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_string_tripless_resize
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_string_tripless_resize\fP(
+    \fBconst f_array_length_t     \fP\fIlength\fP,
+    \fBf_string_tripless_t *const \fP\fItripless\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string tripless array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B tripless
+The string tripless array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.PP
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 59f7fe49a974f524a1ce932426e2cd423dc1049a..7992a226944952541a157cfdbbbbb844d644c0e3 100644 (file)
@@ -38,6 +38,8 @@ build_sources_library thread.c private-thread.c thread/attribute.c thread/barrie
 
 build_sources_headers thread.h thread/attribute.h thread/barrier.h thread/barrier_attribute.h thread/condition.h thread/condition_attribute.h thread/id.h thread/key.h thread/lock.h thread/lock_attribute.h thread/mutex.h thread/mutex_attribute.h thread/once.h thread/semaphore.h thread/set.h thread/spin.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_at_fork.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_at_fork.3
new file mode 100644 (file)
index 0000000..c4eb991
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_at_fork "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_at_fork
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_at_fork\fP(
+    \fBvoid(*)(void) \fP\fIbefore\fP,
+    \fBvoid(*)(void) \fP\fIafter_parent\fP,
+    \fBvoid(*)(void) \fP\fIafter_child\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Perform a fork operation.
+.SH PARAMETERS
+.TP
+.B before
+The function to call before forking.
+
+.TP
+.B after_parent
+The function called after forking, for the parent process.
+
+.TP
+.B after_child
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_affinity_get.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_affinity_get.3
new file mode 100644 (file)
index 0000000..30ee222
--- /dev/null
@@ -0,0 +1,41 @@
+.TH f_thread_attribute_affinity_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attribute_affinity_get
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_attribute_affinity_get\fP(
+    \fBconst f_thread_attribute_t \fP\fIattribute\fP,
+    \fBconst size_t               \fP\fIaffinity_size\fP,
+    \fBcpu_set_t *const           \fP\fIaffinity_set\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the affinity state of the thread attribute.
+.SH PARAMETERS
+.TP
+.B attribute
+The thread attributes to process.
+
+.TP
+.B affinity_size
+The size of the affinity_set.
+
+.TP
+.B affinity_set
+The assigned affinity information.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_affinity_set.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_affinity_set.3
new file mode 100644 (file)
index 0000000..dd22383
--- /dev/null
@@ -0,0 +1,43 @@
+.TH f_thread_attribute_affinity_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attribute_affinity_set
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_attribute_affinity_set\fP(
+    \fBconst size_t                \fP\fIaffinity_size\fP,
+    \fBconst cpu_set_t            *\fP\fIaffinity_set\fP,
+    \fBf_thread_attribute_t *const \fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the affinity state of the thread attribute.
+.SH PARAMETERS
+.TP
+.B affinity_size
+The size of the affinity_set.
+
+.TP
+.B affinity_set
+The affinity information to assign.
+
+.TP
+.B attribute
+The thread attributes to update.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_concurrency_get.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_concurrency_get.3
new file mode 100644 (file)
index 0000000..5ecfb8f
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_thread_attribute_concurrency_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attribute_concurrency_get
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_attribute_concurrency_get\fP(
+    \fBint *const \fP\fIlevel\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the level of concurrency.
+.PP
+A level of 0 designates the system to automatically choose concurrency level. Any non-zero level is considered a hint and will be followed at the systems discretion.
+.SH PARAMETERS
+.TP
+.B level
+The concurrency level.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_resource_not\fP (with error bit) if the new level would cause the system to exceed available resources.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_concurrency_set.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_concurrency_set.3
new file mode 100644 (file)
index 0000000..73ed394
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_thread_attribute_concurrency_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attribute_concurrency_set
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_attribute_concurrency_set\fP(
+    \fBconst int \fP\fIlevel\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the level of concurrency.
+.PP
+A level of 0 designates the system to automatically choose concurrency level. Any non-zero level is considered a hint and will be followed at the systems discretion.
+.SH PARAMETERS
+.TP
+.B level
+The concurrency level.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_create.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_create.3
new file mode 100644 (file)
index 0000000..f591a86
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_thread_attribute_create "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attribute_create
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_attribute_create\fP(
+    \fBf_thread_attribute_t *const \fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create (initialize) a thread attribute structure.
+.SH PARAMETERS
+.TP
+.B attribute
+(optional) The attribute to set. Set to NULL to not use (in which case the default attribute is used).
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_default_get.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_default_get.3
new file mode 100644 (file)
index 0000000..9a743b0
--- /dev/null
@@ -0,0 +1,31 @@
+.TH f_thread_attribute_default_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attribute_default_get
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_attribute_default_get\fP(
+    \fBf_thread_attribute_t *const \fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the default thread attribute.
+.SH PARAMETERS
+.TP
+.B attribute
+The thread attributes to process.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_default_set.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_default_set.3
new file mode 100644 (file)
index 0000000..bc9b78e
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_thread_attribute_default_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attribute_default_set
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_attribute_default_set\fP(
+    \fBf_thread_attribute_t *const \fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the default thread attribute.
+.SH PARAMETERS
+.TP
+.B attribute
+The thread attributes to update.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_delete.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_delete.3
new file mode 100644 (file)
index 0000000..72ceace
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_thread_attribute_delete "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attribute_delete
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_attribute_delete\fP(
+    \fBf_thread_attribute_t *const \fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Delete a thread attribute structure.
+.PP
+On successfully delete, the pointer address is set to 0.
+.PP
+The pthread_attr_destroy() function has no distinction like the *_destroy() and the *_delete() used by the FLL project. Therefore there is only this function for both deleting and destroying.
+.SH PARAMETERS
+.TP
+.B attribute
+The thread attributes to delete.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_detach_get.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_detach_get.3
new file mode 100644 (file)
index 0000000..be2bf7e
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_attribute_detach_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attribute_detach_get
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_attribute_detach_get\fP(
+    \fBconst f_thread_attribute_t \fP\fIattribute\fP,
+    \fBint *const                 \fP\fIstate\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the detached state of the thread attribute.
+.SH PARAMETERS
+.TP
+.B attribute
+The thread attributes to process.
+
+.TP
+.B state
+The currently assigned state.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_detach_set.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_detach_set.3
new file mode 100644 (file)
index 0000000..1f1be01
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_attribute_detach_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attribute_detach_set
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_attribute_detach_set\fP(
+    \fBconst int                   \fP\fIstate\fP,
+    \fBf_thread_attribute_t *const \fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the detached state of the thread attribute.
+.SH PARAMETERS
+.TP
+.B state
+The state to assign (such as PTHREAD_CREATE_DETACHED or PTHREAD_CREATE_JOINABLE).
+
+.TP
+.B attribute
+The thread attributes to update.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_guard_get.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_guard_get.3
new file mode 100644 (file)
index 0000000..1d00fee
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_attribute_guard_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attribute_guard_get
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_attribute_guard_get\fP(
+    \fBconst f_thread_attribute_t \fP\fIattribute\fP,
+    \fBsize_t *const              \fP\fIguard\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the guard size of the thread attribute.
+.SH PARAMETERS
+.TP
+.B attribute
+The thread attributes to process.
+
+.TP
+.B guard
+The currently assigned guard size.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_guard_set.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_guard_set.3
new file mode 100644 (file)
index 0000000..c43b6dd
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_attribute_guard_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attribute_guard_set
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_attribute_guard_set\fP(
+    \fBconst size_t                \fP\fIguard\fP,
+    \fBf_thread_attribute_t *const \fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the guard size of the thread attribute.
+.SH PARAMETERS
+.TP
+.B guard
+The guard size to assign.
+
+.TP
+.B attribute
+The thread attributes to update.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_scheduler_inherit_get.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_scheduler_inherit_get.3
new file mode 100644 (file)
index 0000000..7ac0dfe
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_attribute_scheduler_inherit_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attribute_scheduler_inherit_get
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_attribute_scheduler_inherit_get\fP(
+    \fBconst f_thread_attribute_t \fP\fIattribute\fP,
+    \fBint *const                 \fP\fIinherit\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the scheduler inherit state of the thread attribute.
+.SH PARAMETERS
+.TP
+.B attribute
+The thread attributes to process.
+
+.TP
+.B inherit
+The currently assigned scheduler inherit state.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_scheduler_inherit_set.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_scheduler_inherit_set.3
new file mode 100644 (file)
index 0000000..15c51dc
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_attribute_scheduler_inherit_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attribute_scheduler_inherit_set
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_attribute_scheduler_inherit_set\fP(
+    \fBconst int                   \fP\fIinherit\fP,
+    \fBf_thread_attribute_t *const \fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the scheduler inherit state of the thread attribute.
+.SH PARAMETERS
+.TP
+.B inherit
+The inherit state of the scheduler (such as PTHREAD_INHERIT_SCHED or PTHREAD_EXPLICIT_SCHED).
+
+.TP
+.B attribute
+The thread attributes to update.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_scheduler_parameter_get.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_scheduler_parameter_get.3
new file mode 100644 (file)
index 0000000..c717de6
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_attribute_scheduler_parameter_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attribute_scheduler_parameter_get
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_attribute_scheduler_parameter_get\fP(
+    \fBconst f_thread_attribute_t \fP\fIattribute\fP,
+    \fBstruct sched_param *const  \fP\fIparameter\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the scheduler parameter state of the thread attribute.
+.SH PARAMETERS
+.TP
+.B attribute
+The thread attributes to process.
+
+.TP
+.B parameter
+The currently assigned scheduler parameters.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_scheduler_parameter_set.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_scheduler_parameter_set.3
new file mode 100644 (file)
index 0000000..a365723
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_attribute_scheduler_parameter_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attribute_scheduler_parameter_set
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_attribute_scheduler_parameter_set\fP(
+    \fBconst struct sched_param    \fP\fIparameter\fP,
+    \fBf_thread_attribute_t *const \fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the scheduler parameter state of the thread attribute.
+.SH PARAMETERS
+.TP
+.B parameter
+The parameters of the scheduler.
+
+.TP
+.B attribute
+The thread attributes to update.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_scheduler_policy_get.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_scheduler_policy_get.3
new file mode 100644 (file)
index 0000000..3aa697d
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_attribute_scheduler_policy_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attribute_scheduler_policy_get
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_attribute_scheduler_policy_get\fP(
+    \fBconst f_thread_attribute_t \fP\fIattribute\fP,
+    \fBint *const                 \fP\fIpolicy\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the scheduler policy state of the thread attribute.
+.SH PARAMETERS
+.TP
+.B attribute
+The thread attributes to process.
+
+.TP
+.B policy
+The currently assigned scheduler policy state.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_scheduler_policy_set.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_scheduler_policy_set.3
new file mode 100644 (file)
index 0000000..6265635
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_attribute_scheduler_policy_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attribute_scheduler_policy_set
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_attribute_scheduler_policy_set\fP(
+    \fBconst int                   \fP\fIpolicy\fP,
+    \fBf_thread_attribute_t *const \fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the scheduler policy state of the thread attribute.
+.SH PARAMETERS
+.TP
+.B policy
+The policy state of the scheduler (such as SCHED_FIFO, SCHED_RR, or SCHED_OTHER).
+
+.TP
+.B attribute
+The thread attributes to update.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_scope_get.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_scope_get.3
new file mode 100644 (file)
index 0000000..d6f64ad
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_attribute_scope_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attribute_scope_get
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_attribute_scope_get\fP(
+    \fBconst f_thread_attribute_t \fP\fIattribute\fP,
+    \fBint *const                 \fP\fIscope\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the scheduler scope state of the thread attribute.
+.SH PARAMETERS
+.TP
+.B attribute
+The thread attributes to process.
+
+.TP
+.B scope
+The currently assigned scheduler scope state.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_scope_set.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_scope_set.3
new file mode 100644 (file)
index 0000000..92487d6
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_thread_attribute_scope_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attribute_scope_set
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_attribute_scope_set\fP(
+    \fBconst int                   \fP\fIscope\fP,
+    \fBf_thread_attribute_t *const \fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the scheduler scope state of the thread attribute.
+.SH PARAMETERS
+.TP
+.B scope
+The scope state of the scheduler (such as PTHREAD_SCOPE_SYSTEM or PTHREAD_SCOPE_PROCESS).
+
+.TP
+.B attribute
+The thread attributes to update.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_supported_not\fP (with error bit) if the scope is not supported by the current OS (such as Linux not supporting PTHREAD_SCOPE_PROCESS).
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_stack_get.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_stack_get.3
new file mode 100644 (file)
index 0000000..7ae51b1
--- /dev/null
@@ -0,0 +1,43 @@
+.TH f_thread_attribute_stack_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attribute_stack_get
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_attribute_stack_get\fP(
+    \fBconst f_thread_attribute_t \fP\fIattribute\fP,
+    \fBsize_t *const              \fP\fIstack_size\fP,
+    \fBvoid                     **\fP\fIstack\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the stack of the thread attribute.
+.SH PARAMETERS
+.TP
+.B attribute
+The thread attributes to process.
+
+.TP
+.B stack_size
+The size of the stack.
+
+.TP
+.B stack
+The assigned stack.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) if the caller cannot both read and write to the stack address.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_stack_set.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_stack_set.3
new file mode 100644 (file)
index 0000000..e84306a
--- /dev/null
@@ -0,0 +1,43 @@
+.TH f_thread_attribute_stack_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attribute_stack_set
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_attribute_stack_set\fP(
+    \fBconst size_t                \fP\fIstack_size\fP,
+    \fBvoid *const                 \fP\fIstack\fP,
+    \fBf_thread_attribute_t *const \fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the stack of the thread attribute.
+.SH PARAMETERS
+.TP
+.B stack_size
+The size of the stack.
+
+.TP
+.B stack
+The stack to assign.
+
+.TP
+.B attribute
+The thread attributes to update.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) if the caller cannot both read and write to the stack address.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_stack_size_get.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_stack_size_get.3
new file mode 100644 (file)
index 0000000..b5052f1
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_attribute_stack_size_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attribute_stack_size_get
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_attribute_stack_size_get\fP(
+    \fBconst f_thread_attribute_t \fP\fIattribute\fP,
+    \fBsize_t *const              \fP\fIstack_size\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the stack size of the thread attribute.
+.SH PARAMETERS
+.TP
+.B attribute
+The thread attributes to process.
+
+.TP
+.B stack_size
+The assigned size of the stack.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_stack_size_set.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attribute_stack_size_set.3
new file mode 100644 (file)
index 0000000..8e4bef7
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_attribute_stack_size_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attribute_stack_size_set
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_attribute_stack_size_set\fP(
+    \fBconst size_t                \fP\fIstack_size\fP,
+    \fBf_thread_attribute_t *const \fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the stack size of the thread attribute.
+.SH PARAMETERS
+.TP
+.B stack_size
+The size of the stack.
+
+.TP
+.B attribute
+The thread attributes to update.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attributes_adjust.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attributes_adjust.3
new file mode 100644 (file)
index 0000000..f93bf12
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_attributes_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attributes_adjust
+.SH SYNOPSIS
+.nf
+.B #include <attribute.h>
+.sp
+\fBf_status_t f_thread_attributes_adjust\fP(
+    \fBconst f_array_length_t       \fP\fIlength\fP,
+    \fBf_thread_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread attributes array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B attributes
+The string attributes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attributes_decimate_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attributes_decimate_by.3
new file mode 100644 (file)
index 0000000..1738ba1
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_attributes_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attributes_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <attribute.h>
+.sp
+\fBf_status_t f_thread_attributes_decimate_by\fP(
+    \fBconst f_array_length_t       \fP\fIamount\fP,
+    \fBf_thread_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread attributes array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B attributes
+The string attributes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attributes_decrease_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attributes_decrease_by.3
new file mode 100644 (file)
index 0000000..36cf4a8
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_attributes_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attributes_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <attribute.h>
+.sp
+\fBf_status_t f_thread_attributes_decrease_by\fP(
+    \fBconst f_array_length_t       \fP\fIamount\fP,
+    \fBf_thread_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread attributes array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B attributes
+The string attributes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attributes_increase.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attributes_increase.3
new file mode 100644 (file)
index 0000000..ce39d07
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_attributes_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attributes_increase
+.SH SYNOPSIS
+.nf
+.B #include <attribute.h>
+.sp
+\fBf_status_t f_thread_attributes_increase\fP(
+    \fBconst f_array_length_t       \fP\fIstep\fP,
+    \fBf_thread_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the thread attributes array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B attributes
+The string attributes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attributes_increase_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attributes_increase_by.3
new file mode 100644 (file)
index 0000000..ba92d67
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_attributes_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attributes_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <attribute.h>
+.sp
+\fBf_status_t f_thread_attributes_increase_by\fP(
+    \fBconst f_array_length_t       \fP\fIamount\fP,
+    \fBf_thread_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread attributes array to a larger size.
+.PP
+This will resize making the array larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B attributes
+The string attributes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_attributes_resize.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_attributes_resize.3
new file mode 100644 (file)
index 0000000..a5618bb
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_attributes_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_attributes_resize
+.SH SYNOPSIS
+.nf
+.B #include <attribute.h>
+.sp
+\fBf_status_t f_thread_attributes_resize\fP(
+    \fBconst f_array_length_t       \fP\fIlength\fP,
+    \fBf_thread_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread attributes array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B attributes
+The string attributes array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attribute_create.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attribute_create.3
new file mode 100644 (file)
index 0000000..9b52d00
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_thread_barrier_attribute_create "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_barrier_attribute_create
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_barrier_attribute_create\fP(
+    \fBf_thread_barrier_attribute_t *const \fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create (initialize) a thread barrier attribute structure.
+.SH PARAMETERS
+.TP
+.B attribute
+(optional) The attribute to set. Set to NULL to not use (in which case the default attribute is used).
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attribute_delete.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attribute_delete.3
new file mode 100644 (file)
index 0000000..cb33649
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_thread_barrier_attribute_delete "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_barrier_attribute_delete
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_barrier_attribute_delete\fP(
+    \fBf_thread_barrier_attribute_t  *\fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Delete a thread barrier attribute structure.
+.PP
+On successfully delete, the pointer address is set to 0.
+.PP
+The pthread_barrierattr_destroy() function has no distinction like the *_destroy() and the *_delete() used by the FLL project. Therefore there is only this function for both deleting and destroying.
+.SH PARAMETERS
+.TP
+.B attribute
+The thread barrier_attributes to delete.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attribute_shared_get.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attribute_shared_get.3
new file mode 100644 (file)
index 0000000..a4a6928
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_barrier_attribute_shared_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_barrier_attribute_shared_get
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_barrier_attribute_shared_get\fP(
+    \fBconst f_thread_barrier_attribute_t *const \fP\fIattribute\fP,
+    \fBint *const                                \fP\fIshared\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the barrier process shared thread attribute.
+.SH PARAMETERS
+.TP
+.B attribute
+The barrier thread attribute.
+
+.TP
+.B shared
+The process shared attribute value.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attribute_shared_set.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attribute_shared_set.3
new file mode 100644 (file)
index 0000000..63a61fb
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_barrier_attribute_shared_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_barrier_attribute_shared_set
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_barrier_attribute_shared_set\fP(
+    \fBconst int                           \fP\fIshared\fP,
+    \fBf_thread_barrier_attribute_t *const \fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the barrier process shared thread attribute.
+.SH PARAMETERS
+.TP
+.B shared
+The process shared attribute value.
+
+.TP
+.B attribute
+The barrier thread attribute.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attributes_adjust.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attributes_adjust.3
new file mode 100644 (file)
index 0000000..cba2a79
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_barrier_attributes_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_barrier_attributes_adjust
+.SH SYNOPSIS
+.nf
+.B #include <barrier_attribute.h>
+.sp
+\fBf_status_t f_thread_barrier_attributes_adjust\fP(
+    \fBconst f_array_length_t               \fP\fIlength\fP,
+    \fBf_thread_barrier_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread barrier attributes array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B attributes
+The thread attributes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attributes_decimate_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attributes_decimate_by.3
new file mode 100644 (file)
index 0000000..c3481b8
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_barrier_attributes_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_barrier_attributes_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <barrier_attribute.h>
+.sp
+\fBf_status_t f_thread_barrier_attributes_decimate_by\fP(
+    \fBconst f_array_length_t               \fP\fIamount\fP,
+    \fBf_thread_barrier_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread barrier attributes array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B attributes
+The thread attributes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attributes_decrease_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attributes_decrease_by.3
new file mode 100644 (file)
index 0000000..e1892d8
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_barrier_attributes_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_barrier_attributes_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <barrier_attribute.h>
+.sp
+\fBf_status_t f_thread_barrier_attributes_decrease_by\fP(
+    \fBconst f_array_length_t               \fP\fIamount\fP,
+    \fBf_thread_barrier_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread barrier attributes array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B attributes
+The thread attributes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attributes_increase.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attributes_increase.3
new file mode 100644 (file)
index 0000000..ff16320
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_barrier_attributes_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_barrier_attributes_increase
+.SH SYNOPSIS
+.nf
+.B #include <barrier_attribute.h>
+.sp
+\fBf_status_t f_thread_barrier_attributes_increase\fP(
+    \fBconst f_array_length_t               \fP\fIstep\fP,
+    \fBf_thread_barrier_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the thread barrier attributes array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B attributes
+The thread attributes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attributes_increase_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attributes_increase_by.3
new file mode 100644 (file)
index 0000000..9539715
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_barrier_attributes_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_barrier_attributes_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <barrier_attribute.h>
+.sp
+\fBf_status_t f_thread_barrier_attributes_increase_by\fP(
+    \fBconst f_array_length_t               \fP\fIamount\fP,
+    \fBf_thread_barrier_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread barrier attributes array to a larger size.
+.PP
+This will resize making the array larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B attributes
+The thread attributes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attributes_resize.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_attributes_resize.3
new file mode 100644 (file)
index 0000000..d53807b
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_barrier_attributes_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_barrier_attributes_resize
+.SH SYNOPSIS
+.nf
+.B #include <barrier_attribute.h>
+.sp
+\fBf_status_t f_thread_barrier_attributes_resize\fP(
+    \fBconst f_array_length_t               \fP\fIlength\fP,
+    \fBf_thread_barrier_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread barrier attributes array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B attributes
+The thread attributes array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_create.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_create.3
new file mode 100644 (file)
index 0000000..43575c2
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_thread_barrier_create "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_barrier_create
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_barrier_create\fP(
+    \fBconst unsigned int                  \fP\fIcount\fP,
+    \fBf_thread_barrier_attribute_t *const \fP\fIattribute\fP,
+    \fBf_thread_barrier_t                 *\fP\fIbarrier\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create (initialize) a thread barrier structure.
+.SH PARAMETERS
+.TP
+.B count
+The number of threads that must call the barrier wait function before any can successfully return.
+
+.TP
+.B attribute
+(optional) The default attributes to initialize the barrier to. Set to NULL to not use (in which case the default barrier attributes are used).
+
+.TP
+.B barrier
+The barrier to set.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_busy\fP (with error bit) if barrier is already in use (a re-initialization attempt).
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_resource_not\fP (with error bit) if necessary resouces to perform create are unavailable.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_delete.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_delete.3
new file mode 100644 (file)
index 0000000..9b7f0ce
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_thread_barrier_delete "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_barrier_delete
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_barrier_delete\fP(
+    \fBf_thread_barrier_t  *\fP\fIbarrier\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Delete a thread barrier structure.
+.PP
+On successfully delete, the pointer address is set to 0.
+.PP
+The pthread_barrier_destroy() function has no distinction like the *_destroy() and the *_delete() used by the FLL project. Therefore there is only this function for both deleting and destroying.
+.SH PARAMETERS
+.TP
+.B barrier
+The thread barriers to delete.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_wait.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_barrier_wait.3
new file mode 100644 (file)
index 0000000..34da8bc
--- /dev/null
@@ -0,0 +1,34 @@
+.TH f_thread_barrier_wait "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_barrier_wait
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_barrier_wait\fP(
+    \fBf_thread_barrier_t *const \fP\fIbarrier\fP,
+    \fBint *const                \fP\fIresult\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Wait on a barrier, effectively synchronizing multiple threads with some barrier.
+.SH PARAMETERS
+.TP
+.B barrier
+The barrier to wait on.
+
+.TP
+.B result
+(optional) the return value, which will be PTHREAD_BARRIER_SERIAL_THREAD for one thread and 0 for others. Set to NULL to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_barriers_adjust.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_barriers_adjust.3
new file mode 100644 (file)
index 0000000..60eddf2
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_barriers_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_barriers_adjust
+.SH SYNOPSIS
+.nf
+.B #include <barrier.h>
+.sp
+\fBf_status_t f_thread_barriers_adjust\fP(
+    \fBconst f_array_length_t     \fP\fIlength\fP,
+    \fBf_thread_barriers_t *const \fP\fIbarriers\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread barriers array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B barriers
+The thread barriers array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_barriers_decimate_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_barriers_decimate_by.3
new file mode 100644 (file)
index 0000000..1252928
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_barriers_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_barriers_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <barrier.h>
+.sp
+\fBf_status_t f_thread_barriers_decimate_by\fP(
+    \fBconst f_array_length_t     \fP\fIamount\fP,
+    \fBf_thread_barriers_t *const \fP\fIbarriers\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread barriers array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B barriers
+The thread barriers array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_barriers_decrease_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_barriers_decrease_by.3
new file mode 100644 (file)
index 0000000..7323fea
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_barriers_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_barriers_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <barrier.h>
+.sp
+\fBf_status_t f_thread_barriers_decrease_by\fP(
+    \fBconst f_array_length_t     \fP\fIamount\fP,
+    \fBf_thread_barriers_t *const \fP\fIbarriers\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread barriers array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B barriers
+The thread barriers array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_barriers_increase.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_barriers_increase.3
new file mode 100644 (file)
index 0000000..0b50c5d
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_barriers_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_barriers_increase
+.SH SYNOPSIS
+.nf
+.B #include <barrier.h>
+.sp
+\fBf_status_t f_thread_barriers_increase\fP(
+    \fBconst f_array_length_t     \fP\fIstep\fP,
+    \fBf_thread_barriers_t *const \fP\fIbarriers\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the thread barriers array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B barriers
+The thread barriers array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_barriers_increase_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_barriers_increase_by.3
new file mode 100644 (file)
index 0000000..0215ae5
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_barriers_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_barriers_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <barrier.h>
+.sp
+\fBf_status_t f_thread_barriers_increase_by\fP(
+    \fBconst f_array_length_t     \fP\fIamount\fP,
+    \fBf_thread_barriers_t *const \fP\fIbarriers\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread barriers array to a larger size.
+.PP
+This will resize making the array larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B barriers
+The thread barriers array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_barriers_resize.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_barriers_resize.3
new file mode 100644 (file)
index 0000000..66f0b5c
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_barriers_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_barriers_resize
+.SH SYNOPSIS
+.nf
+.B #include <barrier.h>
+.sp
+\fBf_status_t f_thread_barriers_resize\fP(
+    \fBconst f_array_length_t     \fP\fIlength\fP,
+    \fBf_thread_barriers_t *const \fP\fIbarriers\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread barriers array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B barriers
+The thread barriers array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_caller.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_caller.3
new file mode 100644 (file)
index 0000000..6863c7b
--- /dev/null
@@ -0,0 +1,22 @@
+.TH f_thread_caller "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_caller
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_thread_id_t f_thread_caller\fP(
+    \fBvoid     \fP\fI\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the ID of the calling thread.
+.SH RETURN VALUE
+.PP
+ID of the calling thread
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_cancel.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_cancel.3
new file mode 100644 (file)
index 0000000..ddf1a82
--- /dev/null
@@ -0,0 +1,31 @@
+.TH f_thread_cancel "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_cancel
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_cancel\fP(
+    \fBconst f_thread_id_t \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Cancel a thread.
+.SH PARAMETERS
+.TP
+.B id
+The thread to cancel.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_found_not\fP (with error bit) if no thread by the given ID was found.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_cancel_state_set.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_cancel_state_set.3
new file mode 100644 (file)
index 0000000..1fbecb2
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_cancel_state_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_cancel_state_set
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_cancel_state_set\fP(
+    \fBconst int  \fP\fIstate\fP,
+    \fBint *const \fP\fIprevious\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Assign a cancellation state.
+.SH PARAMETERS
+.TP
+.B state
+The cancellation state to assign.
+
+.TP
+.B previous
+(optional) The previously assigned cancellation state. Set to NULL to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_cancel_test.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_cancel_test.3
new file mode 100644 (file)
index 0000000..916e4e5
--- /dev/null
@@ -0,0 +1,24 @@
+.TH f_thread_cancel_test "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_cancel_test
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_cancel_test\fP(
+    \fBvoid     \fP\fI\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Force any pending thread cancellation to be processed.
+.PP
+If there is no pending thread cancel, nothing happens. If there is a pending thread cancel, the thread cancels and this function never returns.
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_cancel_type_set.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_cancel_type_set.3
new file mode 100644 (file)
index 0000000..a1a5f7d
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_cancel_type_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_cancel_type_set
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_cancel_type_set\fP(
+    \fBconst int  \fP\fItype\fP,
+    \fBint *const \fP\fIprevious\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Assign a cancellation type.
+.SH PARAMETERS
+.TP
+.B type
+The cancellation type to assign.
+
+.TP
+.B previous
+(optional) The previously assigned cancellation type. Set to NULL to not use. (Note: Linux allows this to be optional/NULL but POSIX does not explicitly defined this and there may be portability issues.)
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_clock_get_id.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_clock_get_id.3
new file mode 100644 (file)
index 0000000..e158ba6
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_thread_clock_get_id "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_clock_get_id
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_clock_get_id\fP(
+    \fBconst f_thread_id_t \fP\fIid_thread\fP,
+    \fBclockid_t *const    \fP\fIid_clock\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the clock ID for the given thread.
+.SH PARAMETERS
+.TP
+.B id_thread
+The ID of the thread to use.
+
+.TP
+.B id_clock
+The retrieved clock ID.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_found_not\fP (with error bit) if no thread by the given ID was found.
+.br
+\fBF_supported_not\fP (with error bit) if per-CPU clocks are not supported by the OS.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_compare.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_compare.3
new file mode 100644 (file)
index 0000000..7ca787f
--- /dev/null
@@ -0,0 +1,27 @@
+.TH f_thread_compare "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_compare
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_compare\fP(
+    \fBconst f_thread_id_t \fP\fIid1\fP,
+    \fBconst f_thread_id_t \fP\fIid2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two different thread IDs.
+.PP
+POSIX designates that the thread id (pthread_t) to be loosely defined and can be anything from an integer to a structure. For portability purposes, calling pthread_equal() is the only safe way to compare two thread ids.
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP if the two thread IDs are the same.
+.br
+\fBF_equal_to_not\fP if the two thread IDs are different.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_condition_attribute_clock_get.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_condition_attribute_clock_get.3
new file mode 100644 (file)
index 0000000..3b653dd
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_condition_attribute_clock_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_condition_attribute_clock_get
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_condition_attribute_clock_get\fP(
+    \fBconst f_thread_condition_attribute_t *const \fP\fIattribute\fP,
+    \fBclockid_t *const                            \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the clock selection thread condition attribute.
+.SH PARAMETERS
+.TP
+.B attribute
+The thread condition attribute.
+
+.TP
+.B id
+The clock ID.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_condition_attribute_clock_set.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_condition_attribute_clock_set.3
new file mode 100644 (file)
index 0000000..b16c05d
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_condition_attribute_clock_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_condition_attribute_clock_set
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_condition_attribute_clock_set\fP(
+    \fBconst clockid_t                       \fP\fIid\fP,
+    \fBf_thread_condition_attribute_t *const \fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the clock selection thread condition attribute.
+.SH PARAMETERS
+.TP
+.B id
+The clock ID.
+
+.TP
+.B attribute
+The thread condition attribute.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_condition_attribute_create.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_condition_attribute_create.3
new file mode 100644 (file)
index 0000000..c43df51
--- /dev/null
@@ -0,0 +1,31 @@
+.TH f_thread_condition_attribute_create "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_condition_attribute_create
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_condition_attribute_create\fP(
+    \fBf_thread_condition_attribute_t *const \fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Initialize a attribute.
+.SH PARAMETERS
+.TP
+.B attribute
+The attribute to set. This assigns the default to the attribute.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_condition_attribute_delete.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_condition_attribute_delete.3
new file mode 100644 (file)
index 0000000..a448820
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_thread_condition_attribute_delete "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_condition_attribute_delete
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_condition_attribute_delete\fP(
+    \fBf_thread_condition_attribute_t  *\fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Delete a thread attribute.
+.PP
+The pthread_condattr_destroy() function has no distinction like the *_destroy() and the *_delete() used by the FLL project. Therefore there is only this function for both deleting and destroying.
+.SH PARAMETERS
+.TP
+.B attribute
+The attribute to delete.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_busy\fP (with error bit) if the attribute is busy.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_condition_attribute_shared_get.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_condition_attribute_shared_get.3
new file mode 100644 (file)
index 0000000..b548985
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_condition_attribute_shared_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_condition_attribute_shared_get
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_condition_attribute_shared_get\fP(
+    \fBconst f_thread_condition_attribute_t *const \fP\fIattribute\fP,
+    \fBint *const                                  \fP\fIshared\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the process shared thread condition attribute.
+.SH PARAMETERS
+.TP
+.B attribute
+The thread condition attribute.
+
+.TP
+.B shared
+The process shared attribute value.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_condition_attribute_shared_set.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_condition_attribute_shared_set.3
new file mode 100644 (file)
index 0000000..2f3dd39
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_condition_attribute_shared_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_condition_attribute_shared_set
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_condition_attribute_shared_set\fP(
+    \fBconst int                             \fP\fIshared\fP,
+    \fBf_thread_condition_attribute_t *const \fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the process shared thread condition attribute.
+.SH PARAMETERS
+.TP
+.B shared
+The process shared attribute value.
+
+.TP
+.B attribute
+The thread condition attribute.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_condition_attributes_adjust.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_condition_attributes_adjust.3
new file mode 100644 (file)
index 0000000..2bd1340
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_condition_attributes_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_condition_attributes_adjust
+.SH SYNOPSIS
+.nf
+.B #include <condition_attribute.h>
+.sp
+\fBf_status_t f_thread_condition_attributes_adjust\fP(
+    \fBconst f_array_length_t                 \fP\fIlength\fP,
+    \fBf_thread_condition_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread attributes array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B attributes
+The string attributes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_condition_attributes_decimate_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_condition_attributes_decimate_by.3
new file mode 100644 (file)
index 0000000..9fe7bef
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_condition_attributes_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_condition_attributes_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <condition_attribute.h>
+.sp
+\fBf_status_t f_thread_condition_attributes_decimate_by\fP(
+    \fBconst f_array_length_t                 \fP\fIamount\fP,
+    \fBf_thread_condition_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread attributes array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B attributes
+The string attributes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_condition_attributes_decrease_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_condition_attributes_decrease_by.3
new file mode 100644 (file)
index 0000000..b85838c
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_condition_attributes_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_condition_attributes_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <condition_attribute.h>
+.sp
+\fBf_status_t f_thread_condition_attributes_decrease_by\fP(
+    \fBconst f_array_length_t                 \fP\fIamount\fP,
+    \fBf_thread_condition_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread attributes array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B attributes
+The string attributes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_condition_attributes_increase.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_condition_attributes_increase.3
new file mode 100644 (file)
index 0000000..b75c552
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_condition_attributes_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_condition_attributes_increase
+.SH SYNOPSIS
+.nf
+.B #include <condition_attribute.h>
+.sp
+\fBf_status_t f_thread_condition_attributes_increase\fP(
+    \fBconst f_array_length_t                 \fP\fIstep\fP,
+    \fBf_thread_condition_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the thread attributes array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B attributes
+The string attributes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_condition_attributes_increase_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_condition_attributes_increase_by.3
new file mode 100644 (file)
index 0000000..505b0dd
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_condition_attributes_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_condition_attributes_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <condition_attribute.h>
+.sp
+\fBf_status_t f_thread_condition_attributes_increase_by\fP(
+    \fBconst f_array_length_t                 \fP\fIamount\fP,
+    \fBf_thread_condition_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread attributes array to a larger size.
+.PP
+This will resize making the array larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B attributes
+The string attributes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_condition_attributes_resize.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_condition_attributes_resize.3
new file mode 100644 (file)
index 0000000..c31a6fd
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_condition_attributes_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_condition_attributes_resize
+.SH SYNOPSIS
+.nf
+.B #include <condition_attribute.h>
+.sp
+\fBf_status_t f_thread_condition_attributes_resize\fP(
+    \fBconst f_array_length_t                 \fP\fIlength\fP,
+    \fBf_thread_condition_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread attributes array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B attributes
+The string attributes array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_condition_create.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_condition_create.3
new file mode 100644 (file)
index 0000000..c67aa52
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_condition_create "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_condition_create
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_condition_create\fP(
+    \fBconst f_thread_condition_attribute_t *const \fP\fIattribute\fP,
+    \fBf_thread_condition_t *const                 \fP\fIcondition\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Initialize a condition.
+.SH PARAMETERS
+.TP
+.B attribute
+(optional) The attribute to set. Set to NULL to not use (in which case the default attribute is used).
+
+.TP
+.B condition
+The condition to wait on.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_condition_delete.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_condition_delete.3
new file mode 100644 (file)
index 0000000..6fc4118
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_thread_condition_delete "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_condition_delete
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_condition_delete\fP(
+    \fBf_thread_condition_t  *\fP\fIcondition\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Delete a thread condition.
+.PP
+The pthread_cond_destroy() function has no distinction like the *_destroy() and the *_delete() used by the FLL project. Therefore there is only this function for both deleting and destroying.
+.SH PARAMETERS
+.TP
+.B condition
+The condition to delete.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_busy\fP (with error bit) if the condition is busy.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_condition_signal.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_condition_signal.3
new file mode 100644 (file)
index 0000000..5f9f88e
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_thread_condition_signal "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_condition_signal
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_condition_signal\fP(
+    \fBf_thread_condition_t *const \fP\fIcondition\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Signal a thread waiting on a condition.
+.PP
+Only a single thread waiting on this condition is signaled.
+.SH PARAMETERS
+.TP
+.B condition
+The condition to broadcast the unblock signal to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_condition_signal_all.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_condition_signal_all.3
new file mode 100644 (file)
index 0000000..204dc8f
--- /dev/null
@@ -0,0 +1,31 @@
+.TH f_thread_condition_signal_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_condition_signal_all
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_condition_signal_all\fP(
+    \fBf_thread_condition_t *const \fP\fIcondition\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Signal all threads waiting on a condition.
+.SH PARAMETERS
+.TP
+.B condition
+The condition to broadcast the unblock signal to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_condition_wait.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_condition_wait.3
new file mode 100644 (file)
index 0000000..7ed0158
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_thread_condition_wait "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_condition_wait
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_condition_wait\fP(
+    \fBf_thread_condition_t *const \fP\fIcondition\fP,
+    \fBf_thread_mutex_t *const     \fP\fImutex\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Wait until condition is triggered.
+.PP
+This is a blocking operation.
+.SH PARAMETERS
+.TP
+.B condition
+The condition to wait on.
+
+.TP
+.B mutex
+The mutex to use for waiting on condition.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_dead\fP (with error bit) if the owning thread terminated while holding the mutex lock (thread is dead).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if not allowed to perform the operation (possibly because mutex is not owned by current thread).
+.br
+\fBF_recover_not\fP (with error bit) if the state protected by the mutex is not recoverable.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_condition_wait_timed.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_condition_wait_timed.3
new file mode 100644 (file)
index 0000000..85d35ec
--- /dev/null
@@ -0,0 +1,51 @@
+.TH f_thread_condition_wait_timed "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_condition_wait_timed
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_condition_wait_timed\fP(
+    \fBconst struct timespec      *\fP\fIwait\fP,
+    \fBf_thread_condition_t *const \fP\fIcondition\fP,
+    \fBf_thread_mutex_t *const     \fP\fImutex\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Wait until condition is triggered, blocking until the timeout expires.
+.PP
+This is a semi-blocking operation. This blocks until timeout and then no longer block.
+.SH PARAMETERS
+.TP
+.B wait
+The amount of time to wait for. The wait time is relative to the clock, so consider calling clock_gettime() or gettimeofday() and then adding the amount of wait time.
+
+.TP
+.B condition
+The condition to wait on.
+
+.TP
+.B mutex
+The mutex to use for waiting on condition.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_time\fP on success, and wait timeout was reached before condition was triggered.
+.br
+\fBF_dead\fP (with error bit) if the owning thread terminated while holding the mutex lock (thread is dead).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if not allowed to perform the operation (possibly because mutex is not owned by current thread).
+.br
+\fBF_recover_not\fP (with error bit) if the state protected by the mutex is not recoverable.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_conditions_adjust.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_conditions_adjust.3
new file mode 100644 (file)
index 0000000..56504aa
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_conditions_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_conditions_adjust
+.SH SYNOPSIS
+.nf
+.B #include <condition.h>
+.sp
+\fBf_status_t f_thread_conditions_adjust\fP(
+    \fBconst f_array_length_t       \fP\fIlength\fP,
+    \fBf_thread_conditions_t *const \fP\fIconditions\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread conditions array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B conditions
+The string conditions array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_conditions_decimate_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_conditions_decimate_by.3
new file mode 100644 (file)
index 0000000..f404a0f
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_conditions_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_conditions_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <condition.h>
+.sp
+\fBf_status_t f_thread_conditions_decimate_by\fP(
+    \fBconst f_array_length_t       \fP\fIamount\fP,
+    \fBf_thread_conditions_t *const \fP\fIconditions\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread conditions array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B conditions
+The string conditions array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_conditions_decrease_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_conditions_decrease_by.3
new file mode 100644 (file)
index 0000000..8accc8b
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_conditions_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_conditions_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <condition.h>
+.sp
+\fBf_status_t f_thread_conditions_decrease_by\fP(
+    \fBconst f_array_length_t       \fP\fIamount\fP,
+    \fBf_thread_conditions_t *const \fP\fIconditions\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread conditions array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B conditions
+The string conditions array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_conditions_increase.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_conditions_increase.3
new file mode 100644 (file)
index 0000000..44cbfd7
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_conditions_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_conditions_increase
+.SH SYNOPSIS
+.nf
+.B #include <condition.h>
+.sp
+\fBf_status_t f_thread_conditions_increase\fP(
+    \fBconst f_array_length_t       \fP\fIstep\fP,
+    \fBf_thread_conditions_t *const \fP\fIconditions\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the thread conditions array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B conditions
+The string conditions array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_conditions_increase_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_conditions_increase_by.3
new file mode 100644 (file)
index 0000000..2649b8d
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_conditions_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_conditions_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <condition.h>
+.sp
+\fBf_status_t f_thread_conditions_increase_by\fP(
+    \fBconst f_array_length_t       \fP\fIamount\fP,
+    \fBf_thread_conditions_t *const \fP\fIconditions\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread conditions array to a larger size.
+.PP
+This will resize making the array larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B conditions
+The string conditions array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_conditions_resize.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_conditions_resize.3
new file mode 100644 (file)
index 0000000..c2b79c6
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_conditions_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_conditions_resize
+.SH SYNOPSIS
+.nf
+.B #include <condition.h>
+.sp
+\fBf_status_t f_thread_conditions_resize\fP(
+    \fBconst f_array_length_t       \fP\fIlength\fP,
+    \fBf_thread_conditions_t *const \fP\fIconditions\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread conditions array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B conditions
+The string conditions array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_create.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_create.3
new file mode 100644 (file)
index 0000000..04adfc7
--- /dev/null
@@ -0,0 +1,50 @@
+.TH f_thread_create "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_create
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_create\fP(
+    \fBconst f_thread_attribute_t *const \fP\fIattribute\fP,
+    \fBf_thread_id_t *const              \fP\fIid\fP,
+    \fBvoid *(*)(void *)                 \fP\fIroutine\fP,
+    \fBvoid                             *\fP\fIargument\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create a thread.
+.SH PARAMETERS
+.TP
+.B attribute
+(optional) The thread attributes. Set to NULL to use default attributes.
+
+.TP
+.B id
+The thread ID. This gets populated with the created thread ID (aka: the "child" thread).
+
+.TP
+.B routine
+The function to execute.
+
+.TP
+.B argument
+(optional) The structure containing all arguments to pass to the routine. Set to NULL to not pass an argument.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if not allowed to set the scheduling policy and parameters specified in attribute.
+.br
+\fBF_resource_not\fP (with error bit) if there are not enough resources to create another thread.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_detach.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_detach.3
new file mode 100644 (file)
index 0000000..97c2fb1
--- /dev/null
@@ -0,0 +1,39 @@
+.TH f_thread_detach "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_detach
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_detach\fP(
+    \fBconst f_thread_id_t \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Detatch the given thread.
+.PP
+When a detached thread exits, the resources will automatically be returned to the system without needing another thread to join with it.
+.PP
+Only joinable, undetached, threads are detachable.
+.PP
+Once a thread is detached, it can no longer be joined.
+.SH PARAMETERS
+.TP
+.B id
+The ID of the thread to detach.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_found_not\fP (with error bit) if no thread by the given ID was found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_exit.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_exit.3
new file mode 100644 (file)
index 0000000..802dcef
--- /dev/null
@@ -0,0 +1,29 @@
+.TH f_thread_exit "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_exit
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_exit\fP(
+    \fBint     *\fP\fIresult\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Have the current thread exit.
+.SH PARAMETERS
+.TP
+.B result
+The code returned by the exited thread.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_ids_adjust.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_ids_adjust.3
new file mode 100644 (file)
index 0000000..c11a230
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_ids_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_ids_adjust
+.SH SYNOPSIS
+.nf
+.B #include <id.h>
+.sp
+\fBf_status_t f_thread_ids_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_thread_ids_t *const  \fP\fIids\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread ids array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B ids
+The thread ids array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_ids_decimate_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_ids_decimate_by.3
new file mode 100644 (file)
index 0000000..c154972
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_ids_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_ids_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <id.h>
+.sp
+\fBf_status_t f_thread_ids_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_thread_ids_t *const  \fP\fIids\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread ids array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B ids
+The thread ids array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_ids_decrease_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_ids_decrease_by.3
new file mode 100644 (file)
index 0000000..d904b56
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_ids_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_ids_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <id.h>
+.sp
+\fBf_status_t f_thread_ids_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_thread_ids_t *const  \fP\fIids\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread ids array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B ids
+The thread ids array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_ids_increase.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_ids_increase.3
new file mode 100644 (file)
index 0000000..2313d00
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_ids_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_ids_increase
+.SH SYNOPSIS
+.nf
+.B #include <id.h>
+.sp
+\fBf_status_t f_thread_ids_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_thread_ids_t *const  \fP\fIids\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the thread ids array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B ids
+The thread ids array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_ids_increase_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_ids_increase_by.3
new file mode 100644 (file)
index 0000000..0c1f192
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_ids_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_ids_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <id.h>
+.sp
+\fBf_status_t f_thread_ids_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_thread_ids_t *const  \fP\fIids\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread ids array to a larger size.
+.PP
+This will resize making the array larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B ids
+The thread ids array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_ids_resize.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_ids_resize.3
new file mode 100644 (file)
index 0000000..3617513
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_ids_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_ids_resize
+.SH SYNOPSIS
+.nf
+.B #include <id.h>
+.sp
+\fBf_status_t f_thread_ids_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_thread_ids_t *const  \fP\fIids\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread ids array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B ids
+The thread ids array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_join.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_join.3
new file mode 100644 (file)
index 0000000..0bed558
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_thread_join "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_join
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_join\fP(
+    \fBconst f_thread_id_t \fP\fIid\fP,
+    \fBvoid              **\fP\fIresult\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Wait until the given thread exits and then join it to the current thread.
+.PP
+This is a blocking operation.
+.SH PARAMETERS
+.TP
+.B id
+The ID of the thread to wait for.
+
+.TP
+.B result
+(optional) The data returned by the terminated thread (usually the exist status). If the terminated thread is cancelled, then this holds PTHREAD_CANCELED. Set to NULL to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_deadlock\fP (with error bit) if operation would cause a deadlock.ead.
+.br
+\fBF_found_not\fP (with error bit) if no thread by the given ID was found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_supported_not\fP (with error bit) if the thread is not joinable or is already being joined by another thread.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_join_timed.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_join_timed.3
new file mode 100644 (file)
index 0000000..712728f
--- /dev/null
@@ -0,0 +1,53 @@
+.TH f_thread_join_timed "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_join_timed
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_join_timed\fP(
+    \fBconst f_thread_id_t   \fP\fIid\fP,
+    \fBconst struct timespec \fP\fIwait\fP,
+    \fBvoid                **\fP\fIresult\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Try to join the given thread to the current thread, blocking until the timeout expires.
+.PP
+This is a semi-blocking operation. This blocks until timeout and then no longer block.
+.SH PARAMETERS
+.TP
+.B id
+The ID of the thread to wait for.
+
+.TP
+.B wait
+The amount of time to wait for. The wait time is relative to the clock, so consider calling clock_gettime() or gettimeofday() and then adding the amount of wait time.
+
+.TP
+.B result
+(optional) The data returned by the terminated thread (usually the exist status). If the terminated thread is cancelled, then this holds PTHREAD_CANCELED. Set to NULL to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_busy\fP on success, but thread could not be joined because it has not yet exited.
+.br
+\fBF_time\fP on success, but thread could not be joined because it has not yet exited and the wait timeout was reached.
+.br
+\fBF_deadlock\fP (with error bit) if operation would cause a deadlock.
+.br
+\fBF_found_not\fP (with error bit) if no thread by the given ID was found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_supported_not\fP (with error bit) if the thread is not joinable or is already being joined by another thread.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_join_try.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_join_try.3
new file mode 100644 (file)
index 0000000..0693607
--- /dev/null
@@ -0,0 +1,46 @@
+.TH f_thread_join_try "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_join_try
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_join_try\fP(
+    \fBconst f_thread_id_t \fP\fIid\fP,
+    \fBvoid              **\fP\fIresult\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Try to join the given thread to the current thread.
+.PP
+This is a non-blocking operation.
+.SH PARAMETERS
+.TP
+.B id
+The ID of the thread to wait for.
+
+.TP
+.B result
+(optional) The data returned by the terminated thread (usually the exist status). If the terminated thread is cancelled, then this holds PTHREAD_CANCELED. Set to NULL to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_busy\fP on success, but thread could not be joined because it has not yet exited.
+.br
+\fBF_deadlock\fP (with error bit) if operation would cause a deadlock.ead.
+.br
+\fBF_found_not\fP (with error bit) if no thread by the given ID was found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_supported_not\fP (with error bit) if the thread is not joinable or is already being joined by another thread.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_key_create.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_key_create.3
new file mode 100644 (file)
index 0000000..d9d1518
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_key_create "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_key_create
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_key_create\fP(
+    \fBvoid(*)(void *)       \fP\fIroutine\fP,
+    \fBf_thread_key_t *const \fP\fIkey\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create a thread key.
+.SH PARAMETERS
+.TP
+.B routine
+The function to execute for deallocation/deleting.
+
+.TP
+.B key
+The thread key.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if not allowed to set the scheduling policy and parameters specified in attribute.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_key_delete.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_key_delete.3
new file mode 100644 (file)
index 0000000..444d46c
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_thread_key_delete "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_key_delete
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_key_delete\fP(
+    \fBf_thread_key_t  *\fP\fIkey\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Delete a thread key.
+.PP
+The pthread_key_delete() function has no distinction like the *_destroy() and the *_delete() used by the FLL project. Therefore there is only this function for both deleting and destroying.
+.SH PARAMETERS
+.TP
+.B key
+The key to delete.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_key_get.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_key_get.3
new file mode 100644 (file)
index 0000000..dddd5d8
--- /dev/null
@@ -0,0 +1,34 @@
+.TH f_thread_key_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_key_get
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_key_get\fP(
+    \fBconst f_thread_key_t \fP\fIkey\fP,
+    \fBvoid               **\fP\fIvalue\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the value of a thread key.
+.SH PARAMETERS
+.TP
+.B key
+The thread key.
+
+.TP
+.B value
+The assigned thread key value.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_key_set.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_key_set.3
new file mode 100644 (file)
index 0000000..6ee0457
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_key_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_key_set
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_key_set\fP(
+    \fBconst f_thread_key_t \fP\fIkey\fP,
+    \fBconst void          *\fP\fIvalue\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the value of a thread key.
+.SH PARAMETERS
+.TP
+.B key
+The thread key.
+
+.TP
+.B value
+The thread key value to assign.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_keys_adjust.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_keys_adjust.3
new file mode 100644 (file)
index 0000000..4e2ad53
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_keys_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_keys_adjust
+.SH SYNOPSIS
+.nf
+.B #include <key.h>
+.sp
+\fBf_status_t f_thread_keys_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_thread_keys_t *const \fP\fIkeys\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread keys array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B keys
+The string keys array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_keys_decimate_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_keys_decimate_by.3
new file mode 100644 (file)
index 0000000..0bb7aac
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_keys_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_keys_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <key.h>
+.sp
+\fBf_status_t f_thread_keys_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_thread_keys_t *const \fP\fIkeys\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread keys array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B keys
+The string keys array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_keys_decrease_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_keys_decrease_by.3
new file mode 100644 (file)
index 0000000..101f7db
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_keys_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_keys_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <key.h>
+.sp
+\fBf_status_t f_thread_keys_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_thread_keys_t *const \fP\fIkeys\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread keys array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B keys
+The string keys array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_keys_increase.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_keys_increase.3
new file mode 100644 (file)
index 0000000..45d6a87
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_keys_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_keys_increase
+.SH SYNOPSIS
+.nf
+.B #include <key.h>
+.sp
+\fBf_status_t f_thread_keys_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_thread_keys_t *const \fP\fIkeys\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the thread keys array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B keys
+The string keys array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_keys_increase_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_keys_increase_by.3
new file mode 100644 (file)
index 0000000..51e591b
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_keys_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_keys_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <key.h>
+.sp
+\fBf_status_t f_thread_keys_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_thread_keys_t *const \fP\fIkeys\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread keys array to a larger size.
+.PP
+This will resize making the array larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B keys
+The string keys array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_keys_resize.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_keys_resize.3
new file mode 100644 (file)
index 0000000..8f31f0b
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_keys_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_keys_resize
+.SH SYNOPSIS
+.nf
+.B #include <key.h>
+.sp
+\fBf_status_t f_thread_keys_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_thread_keys_t *const \fP\fIkeys\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread keys array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B keys
+The string keys array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_lock_attribute_create.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_lock_attribute_create.3
new file mode 100644 (file)
index 0000000..935d789
--- /dev/null
@@ -0,0 +1,39 @@
+.TH f_thread_lock_attribute_create "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_lock_attribute_create
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_lock_attribute_create\fP(
+    \fBf_thread_lock_attribute_t *const \fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create a thread lock attribute.
+.SH PARAMETERS
+.TP
+.B attribute
+The lock attributes to create.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_busy\fP (with error bit) if the lock is busy.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if not allowed to perform the operation.
+.br
+\fBF_resource_not\fP (with error bit) if max lockes is reached.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_lock_attribute_delete.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_lock_attribute_delete.3
new file mode 100644 (file)
index 0000000..c3c4123
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_thread_lock_attribute_delete "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_lock_attribute_delete
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_lock_attribute_delete\fP(
+    \fBf_thread_lock_attribute_t  *\fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Delete a thread lock attribute.
+.PP
+The pthread_lockattr_destroy() function has no distinction like the *_destroy() and the *_delete() used by the FLL project. Therefore there is only this function for both deleting and destroying.
+.SH PARAMETERS
+.TP
+.B attribute
+The attribute to delete.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_busy\fP (with error bit) if the lock is busy.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_lock_attribute_shared_get.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_lock_attribute_shared_get.3
new file mode 100644 (file)
index 0000000..4c0dc6e
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_lock_attribute_shared_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_lock_attribute_shared_get
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_lock_attribute_shared_get\fP(
+    \fBconst f_thread_lock_attribute_t *const \fP\fIattribute\fP,
+    \fBint *const                             \fP\fIshared\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the lock attribute process shared thread attribute.
+.SH PARAMETERS
+.TP
+.B attribute
+The lock attribute.
+
+.TP
+.B shared
+The lock shared attribute value.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_lock_attribute_shared_set.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_lock_attribute_shared_set.3
new file mode 100644 (file)
index 0000000..452869a
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_lock_attribute_shared_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_lock_attribute_shared_set
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_lock_attribute_shared_set\fP(
+    \fBconst int                        \fP\fIshared\fP,
+    \fBf_thread_lock_attribute_t *const \fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the lock attribute process shared thread attribute.
+.SH PARAMETERS
+.TP
+.B shared
+The lock shared attribute value.
+
+.TP
+.B attribute
+The lock attribute.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_lock_attributes_adjust.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_lock_attributes_adjust.3
new file mode 100644 (file)
index 0000000..3236395
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_lock_attributes_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_lock_attributes_adjust
+.SH SYNOPSIS
+.nf
+.B #include <lock_attribute.h>
+.sp
+\fBf_status_t f_thread_lock_attributes_adjust\fP(
+    \fBconst f_array_length_t            \fP\fIlength\fP,
+    \fBf_thread_lock_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread attributes array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B attributes
+The string attributes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_lock_attributes_decimate_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_lock_attributes_decimate_by.3
new file mode 100644 (file)
index 0000000..b4684d7
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_lock_attributes_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_lock_attributes_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <lock_attribute.h>
+.sp
+\fBf_status_t f_thread_lock_attributes_decimate_by\fP(
+    \fBconst f_array_length_t            \fP\fIamount\fP,
+    \fBf_thread_lock_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread attributes array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B attributes
+The string attributes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_lock_attributes_decrease_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_lock_attributes_decrease_by.3
new file mode 100644 (file)
index 0000000..7d990e9
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_lock_attributes_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_lock_attributes_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <lock_attribute.h>
+.sp
+\fBf_status_t f_thread_lock_attributes_decrease_by\fP(
+    \fBconst f_array_length_t            \fP\fIamount\fP,
+    \fBf_thread_lock_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread attributes array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B attributes
+The string attributes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_lock_attributes_increase.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_lock_attributes_increase.3
new file mode 100644 (file)
index 0000000..90ddfce
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_lock_attributes_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_lock_attributes_increase
+.SH SYNOPSIS
+.nf
+.B #include <lock_attribute.h>
+.sp
+\fBf_status_t f_thread_lock_attributes_increase\fP(
+    \fBconst f_array_length_t            \fP\fIstep\fP,
+    \fBf_thread_lock_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the thread attributes array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B attributes
+The string attributes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_lock_attributes_increase_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_lock_attributes_increase_by.3
new file mode 100644 (file)
index 0000000..29e7f2b
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_lock_attributes_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_lock_attributes_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <lock_attribute.h>
+.sp
+\fBf_status_t f_thread_lock_attributes_increase_by\fP(
+    \fBconst f_array_length_t            \fP\fIamount\fP,
+    \fBf_thread_lock_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread attributes array to a larger size.
+.PP
+This will resize making the array larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B attributes
+The string attributes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_lock_attributes_resize.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_lock_attributes_resize.3
new file mode 100644 (file)
index 0000000..0560574
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_lock_attributes_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_lock_attributes_resize
+.SH SYNOPSIS
+.nf
+.B #include <lock_attribute.h>
+.sp
+\fBf_status_t f_thread_lock_attributes_resize\fP(
+    \fBconst f_array_length_t            \fP\fIlength\fP,
+    \fBf_thread_lock_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread attributes array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B attributes
+The string attributes array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_lock_create.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_lock_create.3
new file mode 100644 (file)
index 0000000..963d0c9
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_lock_create "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_lock_create
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_lock_create\fP(
+    \fBconst f_thread_lock_attribute_t *const \fP\fIattribute\fP,
+    \fBf_thread_lock_t *const                 \fP\fIlock\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create a thread read/write lock.
+.SH PARAMETERS
+.TP
+.B attribute
+The lock attribute.
+
+.TP
+.B lock
+The lock to create.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_resource_not\fP (with error bit) if max lockes is reached.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_lock_delete.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_lock_delete.3
new file mode 100644 (file)
index 0000000..b2643c9
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_thread_lock_delete "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_lock_delete
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_lock_delete\fP(
+    \fBf_thread_lock_t  *\fP\fIlock\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Delete a thread read/write lock.
+.PP
+The pthread_lock_destroy() function has no distinction like the *_destroy() and the *_delete() used by the FLL project. Therefore there is only this function for both deleting and destroying.
+.SH PARAMETERS
+.TP
+.B lock
+The lock to delete.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_busy\fP (with error bit) if the lock is busy.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_lock_read.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_lock_read.3
new file mode 100644 (file)
index 0000000..d753a73
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_thread_lock_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_lock_read
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_lock_read\fP(
+    \fBf_thread_lock_t *const \fP\fIlock\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Lock the read part of a read/write lock.
+.PP
+This is a blocking function.
+.SH PARAMETERS
+.TP
+.B lock
+The thread lock.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_deadlock\fP (with error bit) if operation would cause a deadlock.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_resource_not\fP (with error bit) if max number of read locks allowed is reached.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_lock_read_timed.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_lock_read_timed.3
new file mode 100644 (file)
index 0000000..9e55c5b
--- /dev/null
@@ -0,0 +1,46 @@
+.TH f_thread_lock_read_timed "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_lock_read_timed
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_lock_read_timed\fP(
+    \fBconst struct timespec *const \fP\fItimeout\fP,
+    \fBf_thread_lock_t *const       \fP\fIlock\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Lock the read part of a read/write lock, waiting for a set period of time to get the lock if already locked.
+.PP
+If the read part of the read/write lock is already locked and the timeout expires, then the lock attempt fails.
+.PP
+This is a blocking function (until timeout expires).
+.SH PARAMETERS
+.TP
+.B timeout
+The timeout.
+
+.TP
+.B lock
+The read/write lock.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_time\fP if the timeout was reached before obtaining the lock.
+.br
+\fBF_deadlock\fP (with error bit) if operation would cause a deadlock.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_resource_not\fP (with error bit) if max number of read locks allowed is reached.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_lock_read_try.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_lock_read_try.3
new file mode 100644 (file)
index 0000000..ffd21bd
--- /dev/null
@@ -0,0 +1,39 @@
+.TH f_thread_lock_read_try "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_lock_read_try
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_lock_read_try\fP(
+    \fBf_thread_lock_t *const \fP\fIlock\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Try to lock the read part of a read/write lock.
+.PP
+If lock is already locked, return immediately.
+.PP
+This is a non-blocking function.
+.SH PARAMETERS
+.TP
+.B lock
+The thread lock.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_busy\fP on success, but the lock is already locked.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_resource_not\fP (with error bit) if max number of read locks allowed is reached.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_lock_write.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_lock_write.3
new file mode 100644 (file)
index 0000000..9a3f370
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_thread_lock_write "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_lock_write
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_lock_write\fP(
+    \fBf_thread_lock_t *const \fP\fIlock\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Lock the write part of a read/write lock.
+.PP
+This is a blocking function.
+.SH PARAMETERS
+.TP
+.B lock
+The thread lock.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_deadlock\fP (with error bit) if operation would cause a deadlock.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_resource_not\fP (with error bit) if max locks is reached.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_lock_write_timed.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_lock_write_timed.3
new file mode 100644 (file)
index 0000000..5931f93
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_thread_lock_write_timed "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_lock_write_timed
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_lock_write_timed\fP(
+    \fBconst struct timespec *const \fP\fItimeout\fP,
+    \fBf_thread_lock_t *const       \fP\fIlock\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Lock the write part of a read/write lock, waiting for a set period of time to get the lock if already locked.
+.PP
+If the write part of the read/write lock is already locked and the timeout expires, then the lock attempt fails.
+.PP
+This is a blocking function (until timeout expires).
+.SH PARAMETERS
+.TP
+.B timeout
+The timeout.
+
+.TP
+.B lock
+The read/write lock.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_time\fP if the timeout was reached before obtaining the lock.
+.br
+\fBF_deadlock\fP (with error bit) if operation would cause a deadlock.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_lock_write_try.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_lock_write_try.3
new file mode 100644 (file)
index 0000000..dac2c2e
--- /dev/null
@@ -0,0 +1,39 @@
+.TH f_thread_lock_write_try "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_lock_write_try
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_lock_write_try\fP(
+    \fBf_thread_lock_t *const \fP\fIlock\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Try to lock the read part of a read/write lock.
+.PP
+If lock is already locked, return immediately.
+.PP
+This is a non-blocking function.
+.SH PARAMETERS
+.TP
+.B lock
+The thread lock.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_busy\fP on success, but the lock is already locked.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_resource_not\fP (with error bit) if max locks is reached.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_locks_adjust.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_locks_adjust.3
new file mode 100644 (file)
index 0000000..8f0ccff
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_locks_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_locks_adjust
+.SH SYNOPSIS
+.nf
+.B #include <lock.h>
+.sp
+\fBf_status_t f_thread_locks_adjust\fP(
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBf_thread_locks_t *const \fP\fIlocks\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the read/write locks array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B locks
+The string locks array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_locks_decimate_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_locks_decimate_by.3
new file mode 100644 (file)
index 0000000..6aa07ef
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_locks_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_locks_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <lock.h>
+.sp
+\fBf_status_t f_thread_locks_decimate_by\fP(
+    \fBconst f_array_length_t  \fP\fIamount\fP,
+    \fBf_thread_locks_t *const \fP\fIlocks\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the read/write locks array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B locks
+The string locks array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_locks_decrease_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_locks_decrease_by.3
new file mode 100644 (file)
index 0000000..081b990
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_locks_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_locks_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <lock.h>
+.sp
+\fBf_status_t f_thread_locks_decrease_by\fP(
+    \fBconst f_array_length_t  \fP\fIamount\fP,
+    \fBf_thread_locks_t *const \fP\fIlocks\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the read/write locks array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B locks
+The string locks array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_locks_increase.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_locks_increase.3
new file mode 100644 (file)
index 0000000..aa4b4cb
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_locks_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_locks_increase
+.SH SYNOPSIS
+.nf
+.B #include <lock.h>
+.sp
+\fBf_status_t f_thread_locks_increase\fP(
+    \fBconst f_array_length_t  \fP\fIstep\fP,
+    \fBf_thread_locks_t *const \fP\fIlocks\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the read/write array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B locks
+The string locks array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_locks_increase_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_locks_increase_by.3
new file mode 100644 (file)
index 0000000..1e1745b
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_locks_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_locks_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <lock.h>
+.sp
+\fBf_status_t f_thread_locks_increase_by\fP(
+    \fBconst f_array_length_t  \fP\fIamount\fP,
+    \fBf_thread_locks_t *const \fP\fIlocks\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the read/write locks array to a larger size.
+.PP
+This will resize making the array larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B locks
+The string locks array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_locks_resize.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_locks_resize.3
new file mode 100644 (file)
index 0000000..085ada3
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_locks_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_locks_resize
+.SH SYNOPSIS
+.nf
+.B #include <lock.h>
+.sp
+\fBf_status_t f_thread_locks_resize\fP(
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBf_thread_locks_t *const \fP\fIlocks\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the read/write locks array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B locks
+The string locks array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_create.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_create.3
new file mode 100644 (file)
index 0000000..1ecd404
--- /dev/null
@@ -0,0 +1,39 @@
+.TH f_thread_mutex_attribute_create "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutex_attribute_create
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_mutex_attribute_create\fP(
+    \fBf_thread_mutex_attribute_t *const \fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create a thread mutex attribute.
+.SH PARAMETERS
+.TP
+.B attribute
+The mutex attributes to create.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_busy\fP (with error bit) if the mutex is busy.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if not allowed to perform the operation.
+.br
+\fBF_resource_not\fP (with error bit) if max mutexes is reached.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_delete.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_delete.3
new file mode 100644 (file)
index 0000000..8a309cd
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_thread_mutex_attribute_delete "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutex_attribute_delete
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_mutex_attribute_delete\fP(
+    \fBf_thread_mutex_attribute_t  *\fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Delete a thread mutex attribute.
+.PP
+The pthread_mutexattr_destroy() function has no distinction like the *_destroy() and the *_delete() used by the FLL project. Therefore there is only this function for both deleting and destroying.
+.SH PARAMETERS
+.TP
+.B attribute
+The attribute to delete.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_busy\fP (with error bit) if the mutex is busy.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_priority_ceiling_get.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_priority_ceiling_get.3
new file mode 100644 (file)
index 0000000..8ff1500
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_mutex_attribute_priority_ceiling_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutex_attribute_priority_ceiling_get
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_mutex_attribute_priority_ceiling_get\fP(
+    \fBconst f_thread_mutex_attribute_t *const \fP\fIattribute\fP,
+    \fBint *const                              \fP\fIceiling\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the mutex attribute priority ceiling.
+.SH PARAMETERS
+.TP
+.B attribute
+The thread mutex attribute.
+
+.TP
+.B ceiling
+The priority ceiling.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if not allowed to perform the operation.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_priority_ceiling_set.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_priority_ceiling_set.3
new file mode 100644 (file)
index 0000000..0031b48
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_mutex_attribute_priority_ceiling_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutex_attribute_priority_ceiling_set
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_mutex_attribute_priority_ceiling_set\fP(
+    \fBconst int                         \fP\fIceiling\fP,
+    \fBf_thread_mutex_attribute_t *const \fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the mutex attribute priority ceiling.
+.SH PARAMETERS
+.TP
+.B ceiling
+The priority ceiling.
+
+.TP
+.B attribute
+The thread mutex attribute.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if not allowed to perform the operation.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_protocol_get.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_protocol_get.3
new file mode 100644 (file)
index 0000000..d13912d
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_thread_mutex_attribute_protocol_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutex_attribute_protocol_get
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_mutex_attribute_protocol_get\fP(
+    \fBconst f_thread_mutex_attribute_t *const \fP\fIattribute\fP,
+    \fBint *const                              \fP\fIprotocol\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the mutex attribute protocol.
+.SH PARAMETERS
+.TP
+.B attribute
+The thread mutex attribute.
+
+.TP
+.B protocol
+The protocol.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if not allowed to perform the operation.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_protocol_set.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_protocol_set.3
new file mode 100644 (file)
index 0000000..7995716
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_mutex_attribute_protocol_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutex_attribute_protocol_set
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_mutex_attribute_protocol_set\fP(
+    \fBconst int                         \fP\fIprotocol\fP,
+    \fBf_thread_mutex_attribute_t *const \fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the mutex attribute protocol.
+.SH PARAMETERS
+.TP
+.B protocol
+The protocol.
+
+.TP
+.B attribute
+The thread mutex attribute.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if not allowed to perform the operation.
+.br
+\fBF_supported_not\fP (with error bit) if the protocol is not supported.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_shared_get.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_shared_get.3
new file mode 100644 (file)
index 0000000..66f3b05
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_mutex_attribute_shared_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutex_attribute_shared_get
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_mutex_attribute_shared_get\fP(
+    \fBconst f_thread_mutex_attribute_t *const \fP\fIattribute\fP,
+    \fBint *const                              \fP\fIshared\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the mutex attribute process shared thread attribute.
+.SH PARAMETERS
+.TP
+.B attribute
+The mutex attribute.
+
+.TP
+.B shared
+The mutex shared attribute value.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_shared_set.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_shared_set.3
new file mode 100644 (file)
index 0000000..8d40261
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_mutex_attribute_shared_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutex_attribute_shared_set
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_mutex_attribute_shared_set\fP(
+    \fBconst int                         \fP\fIshared\fP,
+    \fBf_thread_mutex_attribute_t *const \fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the mutex attribute process shared thread attribute.
+.SH PARAMETERS
+.TP
+.B shared
+The mutex shared attribute value.
+
+.TP
+.B attribute
+The mutex attribute.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_type_get.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_type_get.3
new file mode 100644 (file)
index 0000000..0cac59d
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_mutex_attribute_type_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutex_attribute_type_get
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_mutex_attribute_type_get\fP(
+    \fBconst f_thread_mutex_attribute_t *const \fP\fIattribute\fP,
+    \fBint *const                              \fP\fItype\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the mutex attribute type.
+.SH PARAMETERS
+.TP
+.B attribute
+The mutex attribute.
+
+.TP
+.B type
+The type.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_type_set.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attribute_type_set.3
new file mode 100644 (file)
index 0000000..075a1aa
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_mutex_attribute_type_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutex_attribute_type_set
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_mutex_attribute_type_set\fP(
+    \fBconst int                         \fP\fItype\fP,
+    \fBf_thread_mutex_attribute_t *const \fP\fIattribute\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the mutex attribute process shared thread attribute.
+.SH PARAMETERS
+.TP
+.B type
+The type.
+
+.TP
+.B attribute
+The mutex attribute.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attributes_adjust.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attributes_adjust.3
new file mode 100644 (file)
index 0000000..568a4c5
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_mutex_attributes_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutex_attributes_adjust
+.SH SYNOPSIS
+.nf
+.B #include <mutex_attribute.h>
+.sp
+\fBf_status_t f_thread_mutex_attributes_adjust\fP(
+    \fBconst f_array_length_t             \fP\fIlength\fP,
+    \fBf_thread_mutex_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread attributes array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B attributes
+The thread mutex attributes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attributes_decimate_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attributes_decimate_by.3
new file mode 100644 (file)
index 0000000..937d7c9
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_mutex_attributes_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutex_attributes_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <mutex_attribute.h>
+.sp
+\fBf_status_t f_thread_mutex_attributes_decimate_by\fP(
+    \fBconst f_array_length_t             \fP\fIamount\fP,
+    \fBf_thread_mutex_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread attributes array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B attributes
+The thread mutex attributes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attributes_decrease_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attributes_decrease_by.3
new file mode 100644 (file)
index 0000000..1824fb2
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_mutex_attributes_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutex_attributes_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <mutex_attribute.h>
+.sp
+\fBf_status_t f_thread_mutex_attributes_decrease_by\fP(
+    \fBconst f_array_length_t             \fP\fIamount\fP,
+    \fBf_thread_mutex_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread attributes array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B attributes
+The thread mutex attributes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attributes_increase.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attributes_increase.3
new file mode 100644 (file)
index 0000000..58de54a
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_mutex_attributes_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutex_attributes_increase
+.SH SYNOPSIS
+.nf
+.B #include <mutex_attribute.h>
+.sp
+\fBf_status_t f_thread_mutex_attributes_increase\fP(
+    \fBconst f_array_length_t             \fP\fIstep\fP,
+    \fBf_thread_mutex_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the thread attributes array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B attributes
+The thread mutex attributes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attributes_increase_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attributes_increase_by.3
new file mode 100644 (file)
index 0000000..6c76095
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_mutex_attributes_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutex_attributes_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <mutex_attribute.h>
+.sp
+\fBf_status_t f_thread_mutex_attributes_increase_by\fP(
+    \fBconst f_array_length_t             \fP\fIamount\fP,
+    \fBf_thread_mutex_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread attributes array to a larger size.
+.PP
+This will resize making the array larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B attributes
+The thread mutex attributes array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attributes_resize.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_attributes_resize.3
new file mode 100644 (file)
index 0000000..8a661dd
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_mutex_attributes_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutex_attributes_resize
+.SH SYNOPSIS
+.nf
+.B #include <mutex_attribute.h>
+.sp
+\fBf_status_t f_thread_mutex_attributes_resize\fP(
+    \fBconst f_array_length_t             \fP\fIlength\fP,
+    \fBf_thread_mutex_attributes_t *const \fP\fIattributes\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread attributes array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B attributes
+The thread mutex attributes array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_create.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_create.3
new file mode 100644 (file)
index 0000000..940412b
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_thread_mutex_create "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutex_create
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_mutex_create\fP(
+    \fBf_thread_mutex_attribute_t *const \fP\fIattribute\fP,
+    \fBf_thread_mutex_t *const           \fP\fImutex\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create a thread mutex.
+.SH PARAMETERS
+.TP
+.B attribute
+(optional) The mutex attributes to set. Set to NULL to not use (in which case the default attributes are used).
+
+.TP
+.B mutex
+The mutex to create.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_busy\fP (with error bit) if the mutex is busy.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if not allowed to perform the operation.
+.br
+\fBF_resource_not\fP (with error bit) if max mutexes is reached.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_delete.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_delete.3
new file mode 100644 (file)
index 0000000..d4f2396
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_thread_mutex_delete "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutex_delete
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_mutex_delete\fP(
+    \fBf_thread_mutex_t  *\fP\fImutex\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Delete a thread mutex.
+.PP
+The pthread_mutex_destroy() function has no distinction like the *_destroy() and the *_delete() used by the FLL project. Therefore there is only this function for both deleting and destroying.
+.SH PARAMETERS
+.TP
+.B mutex
+The mutex to delete.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_busy\fP (with error bit) if the mutex is busy.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_lock.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_lock.3
new file mode 100644 (file)
index 0000000..1aa661f
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_thread_mutex_lock "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutex_lock
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_mutex_lock\fP(
+    \fBf_thread_mutex_t *const \fP\fImutex\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Lock the mutex.
+.PP
+This is a blocking function.
+.SH PARAMETERS
+.TP
+.B mutex
+The thread mutex.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_deadlock\fP (with error bit) if operation would cause a deadlock.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_resource_not\fP (with error bit) if max mutex locks is reached.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_lock_timed.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_lock_timed.3
new file mode 100644 (file)
index 0000000..f7ccb2a
--- /dev/null
@@ -0,0 +1,52 @@
+.TH f_thread_mutex_lock_timed "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutex_lock_timed
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_mutex_lock_timed\fP(
+    \fBconst struct timespec *const \fP\fItimeout\fP,
+    \fBf_thread_mutex_t *const      \fP\fImutex\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Lock the mutex, waiting for a set period of time to get the lock if already locked.
+.PP
+If the mutex is already locked and the timeout expires, then the lock attempt fails.
+.PP
+This is a blocking function (until timeout expires).
+.SH PARAMETERS
+.TP
+.B timeout
+The timeout.
+
+.TP
+.B mutex
+The thread mutex.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_time\fP if the timeout was reached before obtaining the lock.
+.br
+\fBF_deadlock\fP (with error bit) if operation would cause a deadlock.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if not allowed to perform the operation.
+.br
+\fBF_recover_not\fP (with error bit) if the state protected by the mutex is not recoverable.
+.br
+\fBF_resource_not\fP (with error bit) if max mutex locks is reached.
+.br
+\fBF_dead\fP (with error bit) if the owning thread terminated while holding the mutex lock (thread is dead).
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_lock_try.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_lock_try.3
new file mode 100644 (file)
index 0000000..bb5bc3f
--- /dev/null
@@ -0,0 +1,39 @@
+.TH f_thread_mutex_lock_try "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutex_lock_try
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_mutex_lock_try\fP(
+    \fBf_thread_mutex_t *const \fP\fImutex\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Try to lock the mutex.
+.PP
+If mutex is already locked, return immediately.
+.PP
+This is a non-blocking function.
+.SH PARAMETERS
+.TP
+.B mutex
+The thread mutex.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_busy\fP on success, but the mutex is already locked.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_resource_not\fP (with error bit) if max mutex locks is reached.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_priority_ceiling_get.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_priority_ceiling_get.3
new file mode 100644 (file)
index 0000000..fcb5585
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_thread_mutex_priority_ceiling_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutex_priority_ceiling_get
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_mutex_priority_ceiling_get\fP(
+    \fBf_thread_mutex_t *const \fP\fImutex\fP,
+    \fBint *const              \fP\fIceiling\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the mutex priority ceiling.
+.SH PARAMETERS
+.TP
+.B mutex
+The thread mutex.
+
+.TP
+.B ceiling
+The priority ceiling.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if not allowed to perform the operation.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_priority_ceiling_set.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_priority_ceiling_set.3
new file mode 100644 (file)
index 0000000..32324db
--- /dev/null
@@ -0,0 +1,51 @@
+.TH f_thread_mutex_priority_ceiling_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutex_priority_ceiling_set
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_mutex_priority_ceiling_set\fP(
+    \fBconst int               \fP\fIceiling\fP,
+    \fBf_thread_mutex_t *const \fP\fImutex\fP,
+    \fBint *const              \fP\fIprevious\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the mutex priority ceiling.
+.SH PARAMETERS
+.TP
+.B ceiling
+The priority ceiling.
+
+.TP
+.B mutex
+The thread mutex.
+
+.TP
+.B previous
+(optional) The previous priority ceiling. Set to NULL to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_deadlock\fP (with error bit) if operation would cause a deadlock.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if not allowed to perform the operation.
+.br
+\fBF_recover_not\fP (with error bit) if the state protected by the mutex is not recoverable (for a "robust" mutex).
+.br
+\fBF_resource_not\fP (with error bit) if max mutex locks is reached.
+.br
+\fBF_dead\fP (with error bit) if the owning thread terminated while holding the mutex lock (thread is dead).
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_unlock.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutex_unlock.3
new file mode 100644 (file)
index 0000000..fc1b324
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_thread_mutex_unlock "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutex_unlock
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_mutex_unlock\fP(
+    \fBf_thread_mutex_t *const \fP\fImutex\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Unlock the mutex.
+.SH PARAMETERS
+.TP
+.B mutex
+The thread mutex.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if not allowed to perform the operation (possibly because mutex is not owned by current thread).
+.br
+\fBF_resource_not\fP (with error bit) if max mutex locks is reached.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutexs_adjust.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutexs_adjust.3
new file mode 100644 (file)
index 0000000..be9528a
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_mutexs_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutexs_adjust
+.SH SYNOPSIS
+.nf
+.B #include <mutex.h>
+.sp
+\fBf_status_t f_thread_mutexs_adjust\fP(
+    \fBconst f_array_length_t   \fP\fIlength\fP,
+    \fBf_thread_mutexs_t *const \fP\fImutexs\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread mutexs array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B mutexs
+The string mutexs array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutexs_decimate_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutexs_decimate_by.3
new file mode 100644 (file)
index 0000000..2731482
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_mutexs_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutexs_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <mutex.h>
+.sp
+\fBf_status_t f_thread_mutexs_decimate_by\fP(
+    \fBconst f_array_length_t   \fP\fIamount\fP,
+    \fBf_thread_mutexs_t *const \fP\fImutexs\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread mutexs array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B mutexs
+The string mutexs array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutexs_decrease_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutexs_decrease_by.3
new file mode 100644 (file)
index 0000000..9da1e9c
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_mutexs_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutexs_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <mutex.h>
+.sp
+\fBf_status_t f_thread_mutexs_decrease_by\fP(
+    \fBconst f_array_length_t   \fP\fIamount\fP,
+    \fBf_thread_mutexs_t *const \fP\fImutexs\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread mutexs array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B mutexs
+The string mutexs array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutexs_increase.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutexs_increase.3
new file mode 100644 (file)
index 0000000..5ec227a
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_mutexs_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutexs_increase
+.SH SYNOPSIS
+.nf
+.B #include <mutex.h>
+.sp
+\fBf_status_t f_thread_mutexs_increase\fP(
+    \fBconst f_array_length_t   \fP\fIstep\fP,
+    \fBf_thread_mutexs_t *const \fP\fImutexs\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the thread mutexs array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B mutexs
+The string mutexs array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutexs_increase_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutexs_increase_by.3
new file mode 100644 (file)
index 0000000..e488a3c
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_mutexs_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutexs_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <mutex.h>
+.sp
+\fBf_status_t f_thread_mutexs_increase_by\fP(
+    \fBconst f_array_length_t   \fP\fIamount\fP,
+    \fBf_thread_mutexs_t *const \fP\fImutexs\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread mutexs array to a larger size.
+.PP
+This will resize making the array larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B mutexs
+The string mutexs array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_mutexs_resize.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_mutexs_resize.3
new file mode 100644 (file)
index 0000000..86dbf14
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_mutexs_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_mutexs_resize
+.SH SYNOPSIS
+.nf
+.B #include <mutex.h>
+.sp
+\fBf_status_t f_thread_mutexs_resize\fP(
+    \fBconst f_array_length_t   \fP\fIlength\fP,
+    \fBf_thread_mutexs_t *const \fP\fImutexs\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread mutexs array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B mutexs
+The string mutexs array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_once.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_once.3
new file mode 100644 (file)
index 0000000..efab513
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_thread_once "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_once
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_once\fP(
+    \fBvoid(*)(void)          \fP\fIroutine\fP,
+    \fBf_thread_once_t *const \fP\fIonce\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Call the given routine only one time and never again.
+.PP
+Subsequent calls will not call the given routine.
+.SH PARAMETERS
+.TP
+.B routine
+
+.TP
+.B once
+The once variable designating that the given routine will be called only once.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_onces_adjust.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_onces_adjust.3
new file mode 100644 (file)
index 0000000..4733a73
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_onces_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_onces_adjust
+.SH SYNOPSIS
+.nf
+.B #include <once.h>
+.sp
+\fBf_status_t f_thread_onces_adjust\fP(
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBf_thread_onces_t *const \fP\fIonces\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread onces array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B onces
+The thread onces array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_onces_decimate_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_onces_decimate_by.3
new file mode 100644 (file)
index 0000000..1d0eef6
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_onces_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_onces_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <once.h>
+.sp
+\fBf_status_t f_thread_onces_decimate_by\fP(
+    \fBconst f_array_length_t  \fP\fIamount\fP,
+    \fBf_thread_onces_t *const \fP\fIonces\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread onces array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B onces
+The thread onces array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_onces_decrease_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_onces_decrease_by.3
new file mode 100644 (file)
index 0000000..8b6312f
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_onces_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_onces_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <once.h>
+.sp
+\fBf_status_t f_thread_onces_decrease_by\fP(
+    \fBconst f_array_length_t  \fP\fIamount\fP,
+    \fBf_thread_onces_t *const \fP\fIonces\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread onces array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B onces
+The thread onces array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_onces_increase.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_onces_increase.3
new file mode 100644 (file)
index 0000000..df76ff0
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_onces_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_onces_increase
+.SH SYNOPSIS
+.nf
+.B #include <once.h>
+.sp
+\fBf_status_t f_thread_onces_increase\fP(
+    \fBconst f_array_length_t  \fP\fIstep\fP,
+    \fBf_thread_onces_t *const \fP\fIonces\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the thread onces array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B onces
+The thread onces array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_onces_increase_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_onces_increase_by.3
new file mode 100644 (file)
index 0000000..169c4de
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_onces_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_onces_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <once.h>
+.sp
+\fBf_status_t f_thread_onces_increase_by\fP(
+    \fBconst f_array_length_t  \fP\fIamount\fP,
+    \fBf_thread_onces_t *const \fP\fIonces\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread onces array to a larger size.
+.PP
+This will resize making the array larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B onces
+The thread onces array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_onces_resize.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_onces_resize.3
new file mode 100644 (file)
index 0000000..f33f822
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_onces_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_onces_resize
+.SH SYNOPSIS
+.nf
+.B #include <once.h>
+.sp
+\fBf_status_t f_thread_onces_resize\fP(
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBf_thread_onces_t *const \fP\fIonces\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread onces array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B onces
+The thread onces array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_scheduler_parameter_get.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_scheduler_parameter_get.3
new file mode 100644 (file)
index 0000000..e208bcd
--- /dev/null
@@ -0,0 +1,43 @@
+.TH f_thread_scheduler_parameter_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_scheduler_parameter_get
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_scheduler_parameter_get\fP(
+    \fBconst f_thread_id_t       \fP\fIid\fP,
+    \fBint *const                \fP\fIpolicy\fP,
+    \fBstruct sched_param *const \fP\fIparameter\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the thread scheduler parameter.
+.SH PARAMETERS
+.TP
+.B id
+The thread ID.
+
+.TP
+.B policy
+The scheduler policy
+
+.TP
+.B parameter
+The scheduler parameter
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_supported_not\fP (with error bit) if the policy or scheduling parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_scheduler_parameter_set.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_scheduler_parameter_set.3
new file mode 100644 (file)
index 0000000..20328d6
--- /dev/null
@@ -0,0 +1,43 @@
+.TH f_thread_scheduler_parameter_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_scheduler_parameter_set
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_scheduler_parameter_set\fP(
+    \fBconst f_thread_id_t        \fP\fIid\fP,
+    \fBconst int                  \fP\fIpolicy\fP,
+    \fBconst struct sched_param  *\fP\fIparameter\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the thread scheduler parameter.
+.SH PARAMETERS
+.TP
+.B id
+The thread ID.
+
+.TP
+.B policy
+The scheduler policy
+
+.TP
+.B parameter
+The scheduler parameter
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if insufficient privileges or scheduler (or policy) does not allow operation.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_scheduler_priority_set.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_scheduler_priority_set.3
new file mode 100644 (file)
index 0000000..80a3ed7
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_scheduler_priority_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_scheduler_priority_set
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_scheduler_priority_set\fP(
+    \fBconst f_thread_id_t \fP\fIid\fP,
+    \fBconst int           \fP\fIpriority\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the thread scheduler priority.
+.SH PARAMETERS
+.TP
+.B id
+The thread ID.
+
+.TP
+.B priority
+The scheduler priority.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_found_not\fP (with error bit) no thread by the given ID was found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if insufficient privileges.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_create.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_create.3
new file mode 100644 (file)
index 0000000..4d53c67
--- /dev/null
@@ -0,0 +1,43 @@
+.TH f_thread_semaphore_create "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_semaphore_create
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_semaphore_create\fP(
+    \fBconst bool                  \fP\fIshared\fP,
+    \fBconst unsigned int          \fP\fIvalue\fP,
+    \fBf_thread_semaphore_t *const \fP\fIsemaphore\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create a thread semaphore.
+.SH PARAMETERS
+.TP
+.B shared
+If TRUE, then the semaphore is shared between processes (stored as posix shared memory, memory mapped, etc..). IF FALSE, then the semphore is shared between threads of a process (stored as a global variable or in the heap). Not all systems support semaphores shared amongst processes.
+
+.TP
+.B value
+The value to initially assign the semaphore on creation.
+
+.TP
+.B semaphore
+The semaphore to create.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_supported_not\fP (with error bit) if the system does not support the process shared semaphore (shared == true).
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_delete.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_delete.3
new file mode 100644 (file)
index 0000000..8f54e25
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_thread_semaphore_delete "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_semaphore_delete
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_semaphore_delete\fP(
+    \fBf_thread_semaphore_t  *\fP\fIsemaphore\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Delete a thread semaphore.
+.PP
+The sem_destroy() function has no distinction like the *_destroy() and the *_delete() used by the FLL project. Therefore there is only this function for both deleting and destroying.
+.SH PARAMETERS
+.TP
+.B semaphore
+The semaphore to delete.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_busy\fP (with error bit) if the semaphore is busy.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_file_close.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_file_close.3
new file mode 100644 (file)
index 0000000..18d7ed4
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_thread_semaphore_file_close "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_semaphore_file_close
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_semaphore_file_close\fP(
+    \fBf_thread_semaphore_t  *\fP\fIsemaphore\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Close a thread (named) semaphore file.
+.PP
+A named semaphore should be deleted with f_thread_semephore_file_destroy().
+.PP
+A named semaphore should be deleted with this function or with f_thread_semephore_file_destroy().
+.SH PARAMETERS
+.TP
+.B semaphore
+The semaphore to delete.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_file_delete.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_file_delete.3
new file mode 100644 (file)
index 0000000..eadbde0
--- /dev/null
@@ -0,0 +1,39 @@
+.TH f_thread_semaphore_file_delete "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_semaphore_file_delete
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_semaphore_file_delete\fP(
+    \fBconst f_string_static_t \fP\fIname\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Delete a thread (named) semaphore.
+.PP
+This deletes the semaphore file and all processes holding this semaphore will be forcibly closed.
+.SH PARAMETERS
+.TP
+.B name
+The semaphore name to delete.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_file_found_not\fP the named file was not found.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_name_not\fP (with error bit) if file name is too long.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_file_open.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_file_open.3
new file mode 100644 (file)
index 0000000..b1afec7
--- /dev/null
@@ -0,0 +1,67 @@
+.TH f_thread_semaphore_file_open "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_semaphore_file_open
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_semaphore_file_open\fP(
+    \fBconst f_string_static_t \fP\fIname\fP,
+    \fBconst int               \fP\fIflag\fP,
+    \fBconst mode_t            \fP\fImode\fP,
+    \fBunsigned int            \fP\fIvalue\fP,
+    \fBf_thread_semaphore_t  **\fP\fIsemaphore\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Open or create a thread (named) semaphore file.
+.SH PARAMETERS
+.TP
+.B name
+The semaphore file name to create.
+
+.TP
+.B flag
+The file create/open flags. Pass the O_CREATE flag to create the semaphore file.
+
+.TP
+.B mode
+(optional) The file permissions to assign the semaphore. Ignored if O_CREAT is not used in flag. Ignored if the named semaphore already exists.
+
+.TP
+.B value
+(optional) The value to initially assign the semaphore on creation. Ignored if O_CREAT is not used in flag. Ignored if the named semaphore already exists.
+
+.TP
+.B semaphore
+The thread semaphore.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_file_descriptor_max\fP (with error bit) if max file descrriptors was reached.
+.br
+\fBF_file_found\fP (with error bit) if the file was found and both the O_CREAT and O_EXCL flags are set.
+.br
+\fBF_file_open_max\fP (with error bit) too many open files.
+.br
+\fBF_file_found_not\fP (with error bit) if the file was not found and the O_CREAT is not set.
+.br
+\fBF_name_not\fP (with error bit) if file name is too long.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_supported_not\fP (with error bit) if the system does not support the process shared semaphore (shared == true).
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_lock.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_lock.3
new file mode 100644 (file)
index 0000000..45aca9c
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_thread_semaphore_lock "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_semaphore_lock
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_semaphore_lock\fP(
+    \fBf_thread_semaphore_t *const \fP\fIsemaphore\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Lock the semaphore.
+.PP
+This is a blocking function.
+.PP
+This causes the semaphore value to decrement.
+.SH PARAMETERS
+.TP
+.B semaphore
+The thread semaphore.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_interrupt\fP (with error bit) if returned due to an interrupt signal.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_lock_timed.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_lock_timed.3
new file mode 100644 (file)
index 0000000..bfbe8f5
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_thread_semaphore_lock_timed "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_semaphore_lock_timed
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_semaphore_lock_timed\fP(
+    \fBconst struct timespec *const \fP\fItimeout\fP,
+    \fBf_thread_semaphore_t *const  \fP\fIsemaphore\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Lock the semaphore, waiting for a set period of time to get the lock if already locked.
+.PP
+If the semaphore is already locked and the timeout expires, then the lock attempt fails.
+.PP
+This is a blocking function (until timeout expires).
+.SH PARAMETERS
+.TP
+.B timeout
+The timeout.
+
+.TP
+.B semaphore
+The thread semaphore.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_time\fP if the timeout was reached before obtaining the lock.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_interrupt\fP (with error bit) if returned due to an interrupt signal.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_lock_try.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_lock_try.3
new file mode 100644 (file)
index 0000000..27cba30
--- /dev/null
@@ -0,0 +1,39 @@
+.TH f_thread_semaphore_lock_try "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_semaphore_lock_try
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_semaphore_lock_try\fP(
+    \fBf_thread_semaphore_t *const \fP\fIsemaphore\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Try to lock the semaphore.
+.PP
+If semaphore is already locked, return immediately.
+.PP
+This is a non-blocking function.
+.SH PARAMETERS
+.TP
+.B semaphore
+The thread semaphore.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_interrupt\fP (with error bit) if returned due to an interrupt signal.
+.br
+\fBF_resource_not\fP (with error bit) if max semaphore locks is reached.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_unlock.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_unlock.3
new file mode 100644 (file)
index 0000000..a08fdc7
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_thread_semaphore_unlock "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_semaphore_unlock
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_semaphore_unlock\fP(
+    \fBf_thread_semaphore_t *const \fP\fIsemaphore\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Unlock the semaphore.
+.PP
+This causes the semaphore value to increment.
+.SH PARAMETERS
+.TP
+.B semaphore
+The thread semaphore.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_number_overflow\fP (with error bit) if max semaphore value is reached.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_value_get.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_semaphore_value_get.3
new file mode 100644 (file)
index 0000000..57dabc8
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_semaphore_value_get "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_semaphore_value_get
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_semaphore_value_get\fP(
+    \fBf_thread_semaphore_t *const \fP\fIsemaphore\fP,
+    \fBint *const                  \fP\fIvalue\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get the semaphore value.
+.SH PARAMETERS
+.TP
+.B semaphore
+The thread semaphore.
+
+.TP
+.B value
+The semaphore's value.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_semaphores_adjust.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_semaphores_adjust.3
new file mode 100644 (file)
index 0000000..ace69b7
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_semaphores_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_semaphores_adjust
+.SH SYNOPSIS
+.nf
+.B #include <semaphore.h>
+.sp
+\fBf_status_t f_thread_semaphores_adjust\fP(
+    \fBconst f_array_length_t       \fP\fIlength\fP,
+    \fBf_thread_semaphores_t *const \fP\fIsemaphores\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread semaphores array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B semaphores
+The string semaphores array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_semaphores_decimate_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_semaphores_decimate_by.3
new file mode 100644 (file)
index 0000000..fb71dc0
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_semaphores_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_semaphores_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <semaphore.h>
+.sp
+\fBf_status_t f_thread_semaphores_decimate_by\fP(
+    \fBconst f_array_length_t       \fP\fIamount\fP,
+    \fBf_thread_semaphores_t *const \fP\fIsemaphores\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread semaphores array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B semaphores
+The string semaphores array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_semaphores_decrease_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_semaphores_decrease_by.3
new file mode 100644 (file)
index 0000000..b32fa20
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_semaphores_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_semaphores_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <semaphore.h>
+.sp
+\fBf_status_t f_thread_semaphores_decrease_by\fP(
+    \fBconst f_array_length_t       \fP\fIamount\fP,
+    \fBf_thread_semaphores_t *const \fP\fIsemaphores\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread semaphores array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B semaphores
+The string semaphores array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_semaphores_increase.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_semaphores_increase.3
new file mode 100644 (file)
index 0000000..aa2675e
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_semaphores_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_semaphores_increase
+.SH SYNOPSIS
+.nf
+.B #include <semaphore.h>
+.sp
+\fBf_status_t f_thread_semaphores_increase\fP(
+    \fBconst f_array_length_t       \fP\fIstep\fP,
+    \fBf_thread_semaphores_t *const \fP\fIsemaphores\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the thread semaphores array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B semaphores
+The string semaphores array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_semaphores_increase_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_semaphores_increase_by.3
new file mode 100644 (file)
index 0000000..6eb3121
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_semaphores_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_semaphores_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <semaphore.h>
+.sp
+\fBf_status_t f_thread_semaphores_increase_by\fP(
+    \fBconst f_array_length_t       \fP\fIamount\fP,
+    \fBf_thread_semaphores_t *const \fP\fIsemaphores\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread semaphores array to a larger size.
+.PP
+This will resize making the array larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B semaphores
+The string semaphores array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_semaphores_resize.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_semaphores_resize.3
new file mode 100644 (file)
index 0000000..fc0b5e5
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_semaphores_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_semaphores_resize
+.SH SYNOPSIS
+.nf
+.B #include <semaphore.h>
+.sp
+\fBf_status_t f_thread_semaphores_resize\fP(
+    \fBconst f_array_length_t       \fP\fIlength\fP,
+    \fBf_thread_semaphores_t *const \fP\fIsemaphores\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread semaphores array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B semaphores
+The string semaphores array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_sets_adjust.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_sets_adjust.3
new file mode 100644 (file)
index 0000000..fcb5d49
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_sets_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_sets_adjust
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_thread_sets_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_thread_sets_t *const \fP\fIsets\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread sets array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B sets
+The string sets array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_sets_decimate_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_sets_decimate_by.3
new file mode 100644 (file)
index 0000000..3165ba3
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_sets_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_sets_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_thread_sets_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_thread_sets_t *const \fP\fIsets\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread sets array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B sets
+The string sets array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_sets_decrease_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_sets_decrease_by.3
new file mode 100644 (file)
index 0000000..627b2e9
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_sets_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_sets_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_thread_sets_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_thread_sets_t *const \fP\fIsets\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread sets array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B sets
+The string sets array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_sets_increase.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_sets_increase.3
new file mode 100644 (file)
index 0000000..eb101b8
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_sets_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_sets_increase
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_thread_sets_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_thread_sets_t *const \fP\fIsets\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the thread sets array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B sets
+The string sets array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_sets_increase_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_sets_increase_by.3
new file mode 100644 (file)
index 0000000..dc59f45
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_sets_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_sets_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_thread_sets_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_thread_sets_t *const \fP\fIsets\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread sets array to a larger size.
+.PP
+This will resize making the array larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B sets
+The string sets array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_sets_resize.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_sets_resize.3
new file mode 100644 (file)
index 0000000..9082e9b
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_sets_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_sets_resize
+.SH SYNOPSIS
+.nf
+.B #include <set.h>
+.sp
+\fBf_status_t f_thread_sets_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_thread_sets_t *const \fP\fIsets\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread sets array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B sets
+The string sets array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_signal_mask.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_signal_mask.3
new file mode 100644 (file)
index 0000000..9af86ce
--- /dev/null
@@ -0,0 +1,43 @@
+.TH f_thread_signal_mask "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_signal_mask
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_signal_mask\fP(
+    \fBconst int             \fP\fIhow\fP,
+    \fBconst sigset_t *const \fP\fInext\fP,
+    \fBsigset_t *const       \fP\fIcurrent\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get or assign the current signal set in use.
+.PP
+Either set or previous may be NULL but not both (at least one is required).
+.SH PARAMETERS
+.TP
+.B how
+How to handle the signal. Set this to 0 when only trying to get the current signal set.
+
+.TP
+.B next
+(optional) The new set of signals to handle. Set to NULL to not use.
+
+.TP
+.B current
+(optional) The current set of signals being handled. Set to NULL to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success but no signal found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_signal_queue.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_signal_queue.3
new file mode 100644 (file)
index 0000000..7089db0
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_thread_signal_queue "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_signal_queue
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_signal_queue\fP(
+    \fBconst f_thread_id_t \fP\fIid\fP,
+    \fBconst int           \fP\fIsignal\fP,
+    \fBconst union sigval  \fP\fIvalue\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Send the signal and value to the given thread.
+.SH PARAMETERS
+.TP
+.B id
+The ID of the thread to signal.
+
+.TP
+.B signal
+The signal to send to the thread.
+
+.TP
+.B value
+The signal value to send.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success but no signal found.
+.br
+\fBF_found_not\fP (with error bit) if no thread by the given ID was found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_resource_not\fP (with error bit) if the max signals is reached.
+.br
+\fBF_supported_not\fP (with error bit) if this action is not supported by the current OS.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_signal_write.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_signal_write.3
new file mode 100644 (file)
index 0000000..28dad7c
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_signal_write "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_signal_write
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_signal_write\fP(
+    \fBconst f_thread_id_t \fP\fIid\fP,
+    \fBconst int           \fP\fIsignal\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Send a signal to the given thread.
+.SH PARAMETERS
+.TP
+.B id
+The ID of the thread to signal.
+
+.TP
+.B signal
+The signal to send to the thread. If 0 is used instead of a valid signal, then instead check to see if the thread exists.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success and signal is not 0.
+.br
+\fBF_found\fP on success, signal is 0, and the thread by the given ID does exist.
+.br
+\fBF_found_not\fP on success, signal is 0, and the thread by the given ID does not exist.
+.br
+\fBF_found_not\fP (with error bit) if no thread by the given ID was found (and signal is not 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_spin_create.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_spin_create.3
new file mode 100644 (file)
index 0000000..8f19e0b
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_spin_create "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_spin_create
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_spin_create\fP(
+    \fBconst int              \fP\fIshared\fP,
+    \fBf_thread_spin_t *const \fP\fIspin\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create a thread spin lock.
+.SH PARAMETERS
+.TP
+.B shared
+The shared process setting.
+
+.TP
+.B spin
+The spin to create.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_resource_not\fP (with error bit) if max spines is reached.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_spin_delete.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_spin_delete.3
new file mode 100644 (file)
index 0000000..8032dd7
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_thread_spin_delete "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_spin_delete
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_spin_delete\fP(
+    \fBf_thread_spin_t  *\fP\fIspin\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Delete a thread spin lock.
+.PP
+The pthread_spin_destroy() function has no distinction like the *_destroy() and the *_delete() used by the FLL project. Therefore there is only this function for both deleting and destroying.
+.SH PARAMETERS
+.TP
+.B spin
+The spin to delete.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_busy\fP (with error bit) if the spin is busy.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_spin_lock.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_spin_lock.3
new file mode 100644 (file)
index 0000000..f63619d
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_thread_spin_lock "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_spin_lock
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_spin_lock\fP(
+    \fBf_thread_spin_t *const \fP\fIspin\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Lock the spin lock.
+.PP
+This is a blocking function.
+.SH PARAMETERS
+.TP
+.B spin
+The thread spin.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_deadlock\fP (with error bit) if operation would cause a deadlock.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_resource_not\fP (with error bit) if max spin locks is reached.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_spin_lock_try.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_spin_lock_try.3
new file mode 100644 (file)
index 0000000..c207455
--- /dev/null
@@ -0,0 +1,41 @@
+.TH f_thread_spin_lock_try "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_spin_lock_try
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_spin_lock_try\fP(
+    \fBf_thread_spin_t *const \fP\fIspin\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Try to lock the spin lock.
+.PP
+If spin is already locked, return immediately.
+.PP
+This is a non-blocking function.
+.PP
+
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH PARAMETERS
+.TP
+.B spin
+The thread spin.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_busy\fP on success, but the spin is already locked.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_resource_not\fP (with error bit) if max spin locks is reached.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_spin_unlock.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_spin_unlock.3
new file mode 100644 (file)
index 0000000..4cd66e0
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_thread_spin_unlock "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_spin_unlock
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_spin_unlock\fP(
+    \fBf_thread_spin_t *const \fP\fIspin\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Unlock the spin lock.
+.SH PARAMETERS
+.TP
+.B spin
+The thread spin.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if not allowed to perform the operation (possibly because spin is not owned by current thread).
+.br
+\fBF_resource_not\fP (with error bit) if max spin locks is reached.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_spins_adjust.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_spins_adjust.3
new file mode 100644 (file)
index 0000000..f1c0865
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_spins_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_spins_adjust
+.SH SYNOPSIS
+.nf
+.B #include <spin.h>
+.sp
+\fBf_status_t f_thread_spins_adjust\fP(
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBf_thread_spins_t *const \fP\fIspins\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread spin locks array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B spins
+The string spins array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_spins_decimate_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_spins_decimate_by.3
new file mode 100644 (file)
index 0000000..8aac91a
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_spins_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_spins_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <spin.h>
+.sp
+\fBf_status_t f_thread_spins_decimate_by\fP(
+    \fBconst f_array_length_t  \fP\fIamount\fP,
+    \fBf_thread_spins_t *const \fP\fIspins\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread spin locks array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B spins
+The string spins array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_spins_decrease_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_spins_decrease_by.3
new file mode 100644 (file)
index 0000000..e512a02
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_thread_spins_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_spins_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <spin.h>
+.sp
+\fBf_status_t f_thread_spins_decrease_by\fP(
+    \fBconst f_array_length_t  \fP\fIamount\fP,
+    \fBf_thread_spins_t *const \fP\fIspins\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread spin locks array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B spins
+The string spins array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_spins_increase.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_spins_increase.3
new file mode 100644 (file)
index 0000000..fe88db7
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_spins_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_spins_increase
+.SH SYNOPSIS
+.nf
+.B #include <spin.h>
+.sp
+\fBf_status_t f_thread_spins_increase\fP(
+    \fBconst f_array_length_t  \fP\fIstep\fP,
+    \fBf_thread_spins_t *const \fP\fIspins\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the thread spin locks array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B spins
+The string spins array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_spins_increase_by.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_spins_increase_by.3
new file mode 100644 (file)
index 0000000..16a3b85
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_thread_spins_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_spins_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <spin.h>
+.sp
+\fBf_status_t f_thread_spins_increase_by\fP(
+    \fBconst f_array_length_t  \fP\fIamount\fP,
+    \fBf_thread_spins_t *const \fP\fIspins\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread spin locks array to a larger size.
+.PP
+This will resize making the array larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B spins
+The string spins array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_spins_resize.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_spins_resize.3
new file mode 100644 (file)
index 0000000..17f30ee
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_thread_spins_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_spins_resize
+.SH SYNOPSIS
+.nf
+.B #include <spin.h>
+.sp
+\fBf_status_t f_thread_spins_resize\fP(
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBf_thread_spins_t *const \fP\fIspins\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the thread spin locks array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B spins
+The string spins array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_thread/data/documentation/man/man3/f_thread_unlock.3 b/level_0/f_thread/data/documentation/man/man3/f_thread_unlock.3
new file mode 100644 (file)
index 0000000..e721d8e
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_thread_unlock "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_thread_unlock
+.SH SYNOPSIS
+.nf
+.B #include <thread.h>
+.sp
+\fBf_status_t f_thread_unlock\fP(
+    \fBf_thread_lock_t *const \fP\fIlock\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Unlock the read/write lock.
+.SH PARAMETERS
+.TP
+.B lock
+The thread lock.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if not allowed to perform the operation (possibly because lock is not owned by current thread).
+.br
+\fBF_resource_not\fP (with error bit) if max lock locks is reached.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index fd8798c81515cae6dfe885a95fb6eb4ff6b19971..bfc50e863542c0cbdca90adc470b51b5ded87e5e 100644 (file)
@@ -33,6 +33,8 @@ build_libraries -lc
 
 build_sources_headers type.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index 6af82daec3fa02c89924b496bbb2902e9f5dc699..e2b92eb56d80086a086074fab49d1d61c5430469 100644 (file)
@@ -37,6 +37,8 @@ build_sources_library type_array/private-array_length.c type_array/private-cell.
 
 build_sources_headers type_array.h type_array/common.h type_array/array_length.h type_array/cell.h type_array/fll_id.h type_array/int8.h type_array/int16.h type_array/int32.h type_array/int64.h type_array/int128.h type_array/state.h type_array/status.h type_array/uint8.h type_array/uint16.h type_array/uint32.h type_array/uint64.h type_array/uint128.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_array_lengths_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_array_lengths_adjust.3
new file mode 100644 (file)
index 0000000..1b515eb
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_array_lengths_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_array_lengths_adjust
+.SH SYNOPSIS
+.nf
+.B #include <array_length.h>
+.sp
+\fBf_status_t f_array_lengths_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_array_lengths_t     *\fP\fIlengths\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string lengths array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B lengths
+The string lengths array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_array_lengths_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_array_lengths_append.3
new file mode 100644 (file)
index 0000000..e07c276
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_array_lengths_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_array_lengths_append
+.SH SYNOPSIS
+.nf
+.B #include <array_length.h>
+.sp
+\fBf_status_t f_array_lengths_append\fP(
+    \fBconst f_array_length_t \fP\fIsource\fP,
+    \fBf_array_lengths_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source length onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source length to append.
+
+.TP
+.B destination
+The destination lengths the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_array_lengths_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_array_lengths_append_all.3
new file mode 100644 (file)
index 0000000..a0e7fcf
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_array_lengths_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_array_lengths_append_all
+.SH SYNOPSIS
+.nf
+.B #include <array_length.h>
+.sp
+\fBf_status_t f_array_lengths_append_all\fP(
+    \fBconst f_array_lengths_t \fP\fIsource\fP,
+    \fBf_array_lengths_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source lengths onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source lengths to append.
+
+.TP
+.B destination
+The destination lengths the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_array_lengths_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_array_lengths_decimate_by.3
new file mode 100644 (file)
index 0000000..d5eaea1
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_array_lengths_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_array_lengths_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <array_length.h>
+.sp
+\fBf_status_t f_array_lengths_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_array_lengths_t     *\fP\fIlengths\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string lengths array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B lengths
+The string lengths array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_array_lengths_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_array_lengths_decrease_by.3
new file mode 100644 (file)
index 0000000..4994069
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_array_lengths_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_array_lengths_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <array_length.h>
+.sp
+\fBf_status_t f_array_lengths_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_array_lengths_t     *\fP\fIlengths\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string lengths array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B lengths
+The string lengths array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_array_lengths_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_array_lengths_increase.3
new file mode 100644 (file)
index 0000000..4657c0e
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_array_lengths_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_array_lengths_increase
+.SH SYNOPSIS
+.nf
+.B #include <array_length.h>
+.sp
+\fBf_status_t f_array_lengths_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_array_lengths_t     *\fP\fIlengths\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string lengths array, but only if necesary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B lengths
+The string lengths array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_array_lengths_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_array_lengths_increase_by.3
new file mode 100644 (file)
index 0000000..149df0e
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_array_lengths_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_array_lengths_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <array_length.h>
+.sp
+\fBf_status_t f_array_lengths_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_array_lengths_t     *\fP\fIlengths\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string lengths array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B lengths
+The string lengths array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_array_lengths_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_array_lengths_resize.3
new file mode 100644 (file)
index 0000000..271792e
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_array_lengths_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_array_lengths_resize
+.SH SYNOPSIS
+.nf
+.B #include <array_length.h>
+.sp
+\fBf_status_t f_array_lengths_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_array_lengths_t     *\fP\fIlengths\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string lengths array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B lengths
+The string lengths array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_array_lengthss_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_array_lengthss_adjust.3
new file mode 100644 (file)
index 0000000..5acc0d7
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_array_lengthss_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_array_lengthss_adjust
+.SH SYNOPSIS
+.nf
+.B #include <array_length.h>
+.sp
+\fBf_status_t f_array_lengthss_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_array_lengthss_t    *\fP\fIlengthss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string lengthss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B lengthss
+The string lengthss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_array_lengthss_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_array_lengthss_append.3
new file mode 100644 (file)
index 0000000..49b94b4
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_array_lengthss_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_array_lengthss_append
+.SH SYNOPSIS
+.nf
+.B #include <array_length.h>
+.sp
+\fBf_status_t f_array_lengthss_append\fP(
+    \fBconst f_array_lengths_t \fP\fIsource\fP,
+    \fBf_array_lengthss_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source lengths onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source lengths to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_array_lengthss_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_array_lengthss_append_all.3
new file mode 100644 (file)
index 0000000..7dc6240
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_array_lengthss_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_array_lengthss_append_all
+.SH SYNOPSIS
+.nf
+.B #include <array_length.h>
+.sp
+\fBf_status_t f_array_lengthss_append_all\fP(
+    \fBconst f_array_lengthss_t \fP\fIsource\fP,
+    \fBf_array_lengthss_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source lengthss onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source lengthss to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_array_lengthss_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_array_lengthss_decimate_by.3
new file mode 100644 (file)
index 0000000..7e5ce9a
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_array_lengthss_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_array_lengthss_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <array_length.h>
+.sp
+\fBf_status_t f_array_lengthss_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_array_lengthss_t    *\fP\fIlengthss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string lengthss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B lengthss
+The string lengthss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_array_lengthss_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_array_lengthss_decrease_by.3
new file mode 100644 (file)
index 0000000..a642e2c
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_array_lengthss_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_array_lengthss_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <array_length.h>
+.sp
+\fBf_status_t f_array_lengthss_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_array_lengthss_t    *\fP\fIlengthss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string lengthss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B lengthss
+The string lengthss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_array_lengthss_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_array_lengthss_increase.3
new file mode 100644 (file)
index 0000000..b36816d
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_array_lengthss_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_array_lengthss_increase
+.SH SYNOPSIS
+.nf
+.B #include <array_length.h>
+.sp
+\fBf_status_t f_array_lengthss_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_array_lengthss_t    *\fP\fIlengthss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string lengthss array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B lengthss
+The string lengthss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_array_lengthss_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_array_lengthss_increase_by.3
new file mode 100644 (file)
index 0000000..56d1335
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_array_lengthss_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_array_lengthss_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <array_length.h>
+.sp
+\fBf_status_t f_array_lengthss_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_array_lengthss_t    *\fP\fIlengthss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string lengthss array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B lengthss
+The string lengthss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_array_lengthss_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_array_lengthss_resize.3
new file mode 100644 (file)
index 0000000..91e2c1d
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_array_lengthss_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_array_lengthss_resize
+.SH SYNOPSIS
+.nf
+.B #include <array_length.h>
+.sp
+\fBf_status_t f_array_lengthss_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_array_lengthss_t    *\fP\fIlengthss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string lengthss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B lengthss
+The string lengthss array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_cells_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_cells_adjust.3
new file mode 100644 (file)
index 0000000..34f0224
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_cells_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_cells_adjust
+.SH SYNOPSIS
+.nf
+.B #include <cell.h>
+.sp
+\fBf_status_t f_cells_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_cells_t             *\fP\fIcells\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string cells array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B cells
+The string cells array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_cells_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_cells_append.3
new file mode 100644 (file)
index 0000000..a6224b1
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_cells_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_cells_append
+.SH SYNOPSIS
+.nf
+.B #include <cell.h>
+.sp
+\fBf_status_t f_cells_append\fP(
+    \fBconst f_cell_t \fP\fIsource\fP,
+    \fBf_cells_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source cell onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source cell to append.
+
+.TP
+.B destination
+The destination cells the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_cells_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_cells_append_all.3
new file mode 100644 (file)
index 0000000..5530df7
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_cells_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_cells_append_all
+.SH SYNOPSIS
+.nf
+.B #include <cell.h>
+.sp
+\fBf_status_t f_cells_append_all\fP(
+    \fBconst f_cells_t \fP\fIsource\fP,
+    \fBf_cells_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source cells onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source cells to append.
+
+.TP
+.B destination
+The destination cells the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_cells_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_cells_decimate_by.3
new file mode 100644 (file)
index 0000000..ed95394
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_cells_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_cells_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <cell.h>
+.sp
+\fBf_status_t f_cells_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_cells_t             *\fP\fIcells\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string cells array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B cells
+The string cells array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_cells_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_cells_decrease_by.3
new file mode 100644 (file)
index 0000000..436061a
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_cells_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_cells_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <cell.h>
+.sp
+\fBf_status_t f_cells_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_cells_t             *\fP\fIcells\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string cells array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B cells
+The string cells array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_cells_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_cells_increase.3
new file mode 100644 (file)
index 0000000..0d0b25a
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_cells_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_cells_increase
+.SH SYNOPSIS
+.nf
+.B #include <cell.h>
+.sp
+\fBf_status_t f_cells_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_cells_t             *\fP\fIcells\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string cells array, but only if necesary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B cells
+The string cells array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_cells_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_cells_increase_by.3
new file mode 100644 (file)
index 0000000..4074a97
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_cells_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_cells_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <cell.h>
+.sp
+\fBf_status_t f_cells_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_cells_t             *\fP\fIcells\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string cells array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B cells
+The string cells array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_cells_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_cells_resize.3
new file mode 100644 (file)
index 0000000..da9b006
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_cells_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_cells_resize
+.SH SYNOPSIS
+.nf
+.B #include <cell.h>
+.sp
+\fBf_status_t f_cells_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_cells_t             *\fP\fIcells\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string cells array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B cells
+The string cells array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_cellss_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_cellss_adjust.3
new file mode 100644 (file)
index 0000000..a986591
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_cellss_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_cellss_adjust
+.SH SYNOPSIS
+.nf
+.B #include <cell.h>
+.sp
+\fBf_status_t f_cellss_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_cellss_t            *\fP\fIcellss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string cellss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B cellss
+The string cellss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_cellss_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_cellss_append.3
new file mode 100644 (file)
index 0000000..eb41fc8
--- /dev/null
@@ -0,0 +1,39 @@
+.TH f_cellss_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_cellss_append
+.SH SYNOPSIS
+.nf
+.B #include <cell.h>
+.sp
+\fBf_status_t f_cellss_append\fP(
+    \fBconst f_cells_t \fP\fIsource\fP,
+    \fBf_cellss_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source cells onto the destination.
+.PP
+.SH PARAMETERS
+.TP
+.B source
+The source cells to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_cellss_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_cellss_append_all.3
new file mode 100644 (file)
index 0000000..658629c
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_cellss_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_cellss_append_all
+.SH SYNOPSIS
+.nf
+.B #include <cell.h>
+.sp
+\fBf_status_t f_cellss_append_all\fP(
+    \fBconst f_cellss_t \fP\fIsource\fP,
+    \fBf_cellss_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source cellss onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source cellss to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_cellss_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_cellss_decimate_by.3
new file mode 100644 (file)
index 0000000..b5982aa
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_cellss_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_cellss_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <cell.h>
+.sp
+\fBf_status_t f_cellss_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_cellss_t            *\fP\fIcellss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string cellss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B cellss
+The string cellss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_cellss_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_cellss_decrease_by.3
new file mode 100644 (file)
index 0000000..c416e58
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_cellss_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_cellss_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <cell.h>
+.sp
+\fBf_status_t f_cellss_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_cellss_t            *\fP\fIcellss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string cellss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B cellss
+The string cellss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_cellss_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_cellss_increase.3
new file mode 100644 (file)
index 0000000..831fc91
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_cellss_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_cellss_increase
+.SH SYNOPSIS
+.nf
+.B #include <cell.h>
+.sp
+\fBf_status_t f_cellss_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_cellss_t            *\fP\fIcellss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string cellss array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B cellss
+The string cellss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_cellss_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_cellss_increase_by.3
new file mode 100644 (file)
index 0000000..f13c9de
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_cellss_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_cellss_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <cell.h>
+.sp
+\fBf_status_t f_cellss_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_cellss_t            *\fP\fIcellss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string cellss array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B cellss
+The string cellss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_cellss_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_cellss_resize.3
new file mode 100644 (file)
index 0000000..e242eb5
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_cellss_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_cellss_resize
+.SH SYNOPSIS
+.nf
+.B #include <cell.h>
+.sp
+\fBf_status_t f_cellss_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_cellss_t            *\fP\fIcellss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string cellss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B cellss
+The string cellss array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.PP
+Errors (with error bit) from: f_memory_delete(). Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_fll_ids_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_fll_ids_adjust.3
new file mode 100644 (file)
index 0000000..6f219b7
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_fll_ids_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fll_ids_adjust
+.SH SYNOPSIS
+.nf
+.B #include <fll_id.h>
+.sp
+\fBf_status_t f_fll_ids_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_fll_ids_t           *\fP\fIids\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string ids array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B ids
+The string ids array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_fll_ids_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_fll_ids_append.3
new file mode 100644 (file)
index 0000000..2ab80b2
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_fll_ids_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fll_ids_append
+.SH SYNOPSIS
+.nf
+.B #include <fll_id.h>
+.sp
+\fBf_status_t f_fll_ids_append\fP(
+    \fBconst f_fll_id_t \fP\fIsource\fP,
+    \fBf_fll_ids_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source fll_id onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source fll_id to append.
+
+.TP
+.B destination
+The destination fll_ids the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_fll_ids_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_fll_ids_append_all.3
new file mode 100644 (file)
index 0000000..3b1949f
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_fll_ids_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fll_ids_append_all
+.SH SYNOPSIS
+.nf
+.B #include <fll_id.h>
+.sp
+\fBf_status_t f_fll_ids_append_all\fP(
+    \fBconst f_fll_ids_t \fP\fIsource\fP,
+    \fBf_fll_ids_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source fll_ids onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source fll_ids to append.
+
+.TP
+.B destination
+The destination fll_ids the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_fll_ids_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_fll_ids_decimate_by.3
new file mode 100644 (file)
index 0000000..6c41cdb
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_fll_ids_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fll_ids_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <fll_id.h>
+.sp
+\fBf_status_t f_fll_ids_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fll_ids_t           *\fP\fIids\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string ids array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B ids
+The string ids array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_fll_ids_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_fll_ids_decrease_by.3
new file mode 100644 (file)
index 0000000..bcc872a
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_fll_ids_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fll_ids_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <fll_id.h>
+.sp
+\fBf_status_t f_fll_ids_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fll_ids_t           *\fP\fIids\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string ids array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B ids
+The string ids array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_fll_ids_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_fll_ids_increase.3
new file mode 100644 (file)
index 0000000..5921160
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_fll_ids_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fll_ids_increase
+.SH SYNOPSIS
+.nf
+.B #include <fll_id.h>
+.sp
+\fBf_status_t f_fll_ids_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_fll_ids_t           *\fP\fIids\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string ids array, but only if necesary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B ids
+The string ids array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_fll_ids_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_fll_ids_increase_by.3
new file mode 100644 (file)
index 0000000..082ee99
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_fll_ids_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fll_ids_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <fll_id.h>
+.sp
+\fBf_status_t f_fll_ids_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fll_ids_t           *\fP\fIids\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string ids array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B ids
+The string ids array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_fll_ids_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_fll_ids_resize.3
new file mode 100644 (file)
index 0000000..6514de7
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_fll_ids_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fll_ids_resize
+.SH SYNOPSIS
+.nf
+.B #include <fll_id.h>
+.sp
+\fBf_status_t f_fll_ids_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_fll_ids_t           *\fP\fIids\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string ids array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B ids
+The string ids array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_fll_idss_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_fll_idss_adjust.3
new file mode 100644 (file)
index 0000000..caca6ab
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_fll_idss_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fll_idss_adjust
+.SH SYNOPSIS
+.nf
+.B #include <fll_id.h>
+.sp
+\fBf_status_t f_fll_idss_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_fll_idss_t          *\fP\fIidss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string idss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B idss
+The string idss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_fll_idss_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_fll_idss_append.3
new file mode 100644 (file)
index 0000000..2f1dc59
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_fll_idss_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fll_idss_append
+.SH SYNOPSIS
+.nf
+.B #include <fll_id.h>
+.sp
+\fBf_status_t f_fll_idss_append\fP(
+    \fBconst f_fll_ids_t \fP\fIsource\fP,
+    \fBf_fll_idss_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source fll_ids onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source fll_ids to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_fll_idss_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_fll_idss_append_all.3
new file mode 100644 (file)
index 0000000..51d3007
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_fll_idss_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fll_idss_append_all
+.SH SYNOPSIS
+.nf
+.B #include <fll_id.h>
+.sp
+\fBf_status_t f_fll_idss_append_all\fP(
+    \fBconst f_fll_idss_t \fP\fIsource\fP,
+    \fBf_fll_idss_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source fll_idss onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source fll_idss to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_fll_idss_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_fll_idss_decimate_by.3
new file mode 100644 (file)
index 0000000..9001e7e
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_fll_idss_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fll_idss_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <fll_id.h>
+.sp
+\fBf_status_t f_fll_idss_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fll_idss_t          *\fP\fIidss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string idss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B idss
+The string idss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_fll_idss_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_fll_idss_decrease_by.3
new file mode 100644 (file)
index 0000000..62b7a2d
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_fll_idss_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fll_idss_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <fll_id.h>
+.sp
+\fBf_status_t f_fll_idss_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fll_idss_t          *\fP\fIidss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string idss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B idss
+The string idss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_fll_idss_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_fll_idss_increase.3
new file mode 100644 (file)
index 0000000..bd04c57
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_fll_idss_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fll_idss_increase
+.SH SYNOPSIS
+.nf
+.B #include <fll_id.h>
+.sp
+\fBf_status_t f_fll_idss_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_fll_idss_t          *\fP\fIidss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string idss array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B idss
+The string idss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_fll_idss_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_fll_idss_increase_by.3
new file mode 100644 (file)
index 0000000..a810442
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_fll_idss_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fll_idss_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <fll_id.h>
+.sp
+\fBf_status_t f_fll_idss_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_fll_idss_t          *\fP\fIidss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string idss array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B idss
+The string idss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_fll_idss_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_fll_idss_resize.3
new file mode 100644 (file)
index 0000000..e33ee89
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_fll_idss_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_fll_idss_resize
+.SH SYNOPSIS
+.nf
+.B #include <fll_id.h>
+.sp
+\fBf_status_t f_fll_idss_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_fll_idss_t          *\fP\fIidss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string idss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B idss
+The string idss array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int128s_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_int128s_adjust.3
new file mode 100644 (file)
index 0000000..1591a67
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_int128s_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int128s_adjust
+.SH SYNOPSIS
+.nf
+.B #include <int128.h>
+.sp
+\fBf_status_t f_int128s_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_int128s_t           *\fP\fIint128s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int128s array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B int128s
+The int128s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int128s_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_int128s_append.3
new file mode 100644 (file)
index 0000000..4bf891a
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int128s_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int128s_append
+.SH SYNOPSIS
+.nf
+.B #include <int128.h>
+.sp
+\fBf_status_t f_int128s_append\fP(
+    \fBconst int128_t \fP\fIsource\fP,
+    \fBf_int128s_t   *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source int128 onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source int128 to append.
+
+.TP
+.B destination
+The destination int128s the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int128s_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_int128s_append_all.3
new file mode 100644 (file)
index 0000000..5e82ec5
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int128s_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int128s_append_all
+.SH SYNOPSIS
+.nf
+.B #include <int128.h>
+.sp
+\fBf_status_t f_int128s_append_all\fP(
+    \fBconst f_int128s_t \fP\fIsource\fP,
+    \fBf_int128s_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source int128s onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source int128s to append.
+
+.TP
+.B destination
+The destination int128s the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int128s_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int128s_decimate_by.3
new file mode 100644 (file)
index 0000000..3e10512
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_int128s_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int128s_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <int128.h>
+.sp
+\fBf_status_t f_int128s_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int128s_t           *\fP\fIint128s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int128s array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B int128s
+The int128s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int128s_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int128s_decrease_by.3
new file mode 100644 (file)
index 0000000..d7e24cf
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_int128s_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int128s_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <int128.h>
+.sp
+\fBf_status_t f_int128s_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int128s_t           *\fP\fIint128s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int128s array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B int128s
+The int128s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int128s_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_int128s_increase.3
new file mode 100644 (file)
index 0000000..dd585cb
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int128s_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int128s_increase
+.SH SYNOPSIS
+.nf
+.B #include <int128.h>
+.sp
+\fBf_status_t f_int128s_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_int128s_t           *\fP\fIint128s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the int128s array, but only if necesary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B int128s
+The int128s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int128s_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int128s_increase_by.3
new file mode 100644 (file)
index 0000000..40dc3bd
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int128s_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int128s_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <int128.h>
+.sp
+\fBf_status_t f_int128s_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int128s_t           *\fP\fIint128s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int128s array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B int128s
+The int128s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int128s_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_int128s_resize.3
new file mode 100644 (file)
index 0000000..adb5a5c
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_int128s_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int128s_resize
+.SH SYNOPSIS
+.nf
+.B #include <int128.h>
+.sp
+\fBf_status_t f_int128s_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_int128s_t           *\fP\fIint128s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int128s array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B int128s
+The int128s array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int128ss_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_int128ss_adjust.3
new file mode 100644 (file)
index 0000000..07c2734
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int128ss_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int128ss_adjust
+.SH SYNOPSIS
+.nf
+.B #include <int128.h>
+.sp
+\fBf_status_t f_int128ss_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_int128ss_t          *\fP\fIint128ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int128ss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B int128ss
+The int128ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int128ss_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_int128ss_append.3
new file mode 100644 (file)
index 0000000..7beff5d
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int128ss_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int128ss_append
+.SH SYNOPSIS
+.nf
+.B #include <int128.h>
+.sp
+\fBf_status_t f_int128ss_append\fP(
+    \fBconst f_int128s_t \fP\fIsource\fP,
+    \fBf_int128ss_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source int128 onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source int128s to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int128ss_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_int128ss_append_all.3
new file mode 100644 (file)
index 0000000..414acf1
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int128ss_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int128ss_append_all
+.SH SYNOPSIS
+.nf
+.B #include <int128.h>
+.sp
+\fBf_status_t f_int128ss_append_all\fP(
+    \fBconst f_int128ss_t \fP\fIsource\fP,
+    \fBf_int128ss_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source int128ss onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source int128ss to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int128ss_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int128ss_decimate_by.3
new file mode 100644 (file)
index 0000000..591b85b
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_int128ss_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int128ss_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <int128.h>
+.sp
+\fBf_status_t f_int128ss_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int128ss_t          *\fP\fIint128ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int128ss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B int128ss
+The int128ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int128ss_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int128ss_decrease_by.3
new file mode 100644 (file)
index 0000000..c132097
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_int128ss_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int128ss_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <int128.h>
+.sp
+\fBf_status_t f_int128ss_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int128ss_t          *\fP\fIint128ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int128ss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B int128ss
+The int128ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int128ss_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_int128ss_increase.3
new file mode 100644 (file)
index 0000000..b139ec7
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int128ss_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int128ss_increase
+.SH SYNOPSIS
+.nf
+.B #include <int128.h>
+.sp
+\fBf_status_t f_int128ss_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_int128ss_t          *\fP\fIint128ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the int128ss array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B int128ss
+The int128ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int128ss_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int128ss_increase_by.3
new file mode 100644 (file)
index 0000000..d7e71e4
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int128ss_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int128ss_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <int128.h>
+.sp
+\fBf_status_t f_int128ss_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int128ss_t          *\fP\fIint128ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int128ss array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B int128ss
+The int128ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int128ss_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_int128ss_resize.3
new file mode 100644 (file)
index 0000000..96ff92c
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int128ss_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int128ss_resize
+.SH SYNOPSIS
+.nf
+.B #include <int128.h>
+.sp
+\fBf_status_t f_int128ss_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_int128ss_t          *\fP\fIint128ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int128ss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B int128ss
+The int128ss array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.PP
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int16s_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_int16s_adjust.3
new file mode 100644 (file)
index 0000000..fa825ac
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_int16s_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int16s_adjust
+.SH SYNOPSIS
+.nf
+.B #include <int16.h>
+.sp
+\fBf_status_t f_int16s_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_int16s_t            *\fP\fIint16s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int16s array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B int16s
+The int16s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int16s_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_int16s_append.3
new file mode 100644 (file)
index 0000000..ce2daa9
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int16s_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int16s_append
+.SH SYNOPSIS
+.nf
+.B #include <int16.h>
+.sp
+\fBf_status_t f_int16s_append\fP(
+    \fBconst int16_t \fP\fIsource\fP,
+    \fBf_int16s_t   *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source int16 onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source int16 to append.
+
+.TP
+.B destination
+The destination int16s the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int16s_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_int16s_append_all.3
new file mode 100644 (file)
index 0000000..0914a4d
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int16s_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int16s_append_all
+.SH SYNOPSIS
+.nf
+.B #include <int16.h>
+.sp
+\fBf_status_t f_int16s_append_all\fP(
+    \fBconst f_int16s_t \fP\fIsource\fP,
+    \fBf_int16s_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source int16s onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source int16s to append.
+
+.TP
+.B destination
+The destination int16s the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int16s_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int16s_decimate_by.3
new file mode 100644 (file)
index 0000000..25fbd0f
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_int16s_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int16s_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <int16.h>
+.sp
+\fBf_status_t f_int16s_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int16s_t            *\fP\fIint16s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int16s array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B int16s
+The int16s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int16s_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int16s_decrease_by.3
new file mode 100644 (file)
index 0000000..2cbc8d4
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_int16s_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int16s_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <int16.h>
+.sp
+\fBf_status_t f_int16s_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int16s_t            *\fP\fIint16s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int16s array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B int16s
+The int16s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int16s_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_int16s_increase.3
new file mode 100644 (file)
index 0000000..bdf970e
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int16s_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int16s_increase
+.SH SYNOPSIS
+.nf
+.B #include <int16.h>
+.sp
+\fBf_status_t f_int16s_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_int16s_t            *\fP\fIint16s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the int16s array, but only if necesary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B int16s
+The int16s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int16s_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int16s_increase_by.3
new file mode 100644 (file)
index 0000000..c0c8720
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int16s_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int16s_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <int16.h>
+.sp
+\fBf_status_t f_int16s_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int16s_t            *\fP\fIint16s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int16s array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B int16s
+The int16s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int16s_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_int16s_resize.3
new file mode 100644 (file)
index 0000000..55b79c4
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_int16s_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int16s_resize
+.SH SYNOPSIS
+.nf
+.B #include <int16.h>
+.sp
+\fBf_status_t f_int16s_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_int16s_t            *\fP\fIint16s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int16s array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B int16s
+The int16s array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int16ss_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_int16ss_adjust.3
new file mode 100644 (file)
index 0000000..e72db23
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int16ss_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int16ss_adjust
+.SH SYNOPSIS
+.nf
+.B #include <int16.h>
+.sp
+\fBf_status_t f_int16ss_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_int16ss_t           *\fP\fIint16ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int16ss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B int16ss
+The int16ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int16ss_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_int16ss_append.3
new file mode 100644 (file)
index 0000000..4c71dab
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int16ss_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int16ss_append
+.SH SYNOPSIS
+.nf
+.B #include <int16.h>
+.sp
+\fBf_status_t f_int16ss_append\fP(
+    \fBconst f_int16s_t \fP\fIsource\fP,
+    \fBf_int16ss_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source int16s onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source int16s to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int16ss_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_int16ss_append_all.3
new file mode 100644 (file)
index 0000000..b68d783
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int16ss_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int16ss_append_all
+.SH SYNOPSIS
+.nf
+.B #include <int16.h>
+.sp
+\fBf_status_t f_int16ss_append_all\fP(
+    \fBconst f_int16ss_t \fP\fIsource\fP,
+    \fBf_int16ss_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source int16ss onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source int16ss to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int16ss_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int16ss_decimate_by.3
new file mode 100644 (file)
index 0000000..5ac21f5
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int16ss_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int16ss_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <int16.h>
+.sp
+\fBf_status_t f_int16ss_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int16ss_t           *\fP\fIint16ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int16ss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B int16ss
+The int16ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int16ss_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int16ss_decrease_by.3
new file mode 100644 (file)
index 0000000..64e1071
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int16ss_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int16ss_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <int16.h>
+.sp
+\fBf_status_t f_int16ss_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int16ss_t           *\fP\fIint16ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int16ss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B int16ss
+The int16ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int16ss_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_int16ss_increase.3
new file mode 100644 (file)
index 0000000..cda77c8
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int16ss_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int16ss_increase
+.SH SYNOPSIS
+.nf
+.B #include <int16.h>
+.sp
+\fBf_status_t f_int16ss_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_int16ss_t           *\fP\fIint16ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the int16ss array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B int16ss
+The int16ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int16ss_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int16ss_increase_by.3
new file mode 100644 (file)
index 0000000..0217c02
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int16ss_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int16ss_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <int16.h>
+.sp
+\fBf_status_t f_int16ss_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int16ss_t           *\fP\fIint16ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int16ss array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B int16ss
+The int16ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int16ss_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_int16ss_resize.3
new file mode 100644 (file)
index 0000000..91ed586
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int16ss_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int16ss_resize
+.SH SYNOPSIS
+.nf
+.B #include <int16.h>
+.sp
+\fBf_status_t f_int16ss_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_int16ss_t           *\fP\fIint16ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int16ss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B int16ss
+The int16ss array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int32s_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_int32s_adjust.3
new file mode 100644 (file)
index 0000000..62acb08
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_int32s_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int32s_adjust
+.SH SYNOPSIS
+.nf
+.B #include <int32.h>
+.sp
+\fBf_status_t f_int32s_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_int32s_t            *\fP\fIint32s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int32s array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B int32s
+The int32s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int32s_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_int32s_append.3
new file mode 100644 (file)
index 0000000..44bbd6b
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int32s_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int32s_append
+.SH SYNOPSIS
+.nf
+.B #include <int32.h>
+.sp
+\fBf_status_t f_int32s_append\fP(
+    \fBconst int32_t \fP\fIsource\fP,
+    \fBf_int32s_t   *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source int32 onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source int32 to append.
+
+.TP
+.B destination
+The destination int32s the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int32s_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_int32s_append_all.3
new file mode 100644 (file)
index 0000000..c69c7b8
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int32s_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int32s_append_all
+.SH SYNOPSIS
+.nf
+.B #include <int32.h>
+.sp
+\fBf_status_t f_int32s_append_all\fP(
+    \fBconst f_int32s_t \fP\fIsource\fP,
+    \fBf_int32s_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source int32s onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source int32s to append.
+
+.TP
+.B destination
+The destination int32s the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int32s_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int32s_decimate_by.3
new file mode 100644 (file)
index 0000000..70cc71c
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_int32s_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int32s_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <int32.h>
+.sp
+\fBf_status_t f_int32s_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int32s_t            *\fP\fIint32s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int32s array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B int32s
+The int32s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int32s_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int32s_decrease_by.3
new file mode 100644 (file)
index 0000000..1c04310
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int32s_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int32s_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <int32.h>
+.sp
+\fBf_status_t f_int32s_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int32s_t            *\fP\fIint32s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int32s array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B int32s
+The int32s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int32s_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_int32s_increase.3
new file mode 100644 (file)
index 0000000..347156f
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int32s_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int32s_increase
+.SH SYNOPSIS
+.nf
+.B #include <int32.h>
+.sp
+\fBf_status_t f_int32s_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_int32s_t            *\fP\fIint32s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the int32s array, but only if necesary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B int32s
+The int32s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int32s_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int32s_increase_by.3
new file mode 100644 (file)
index 0000000..ba60323
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int32s_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int32s_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <int32.h>
+.sp
+\fBf_status_t f_int32s_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int32s_t            *\fP\fIint32s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int32s array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B int32s
+The int32s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int32s_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_int32s_resize.3
new file mode 100644 (file)
index 0000000..1e42283
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_int32s_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int32s_resize
+.SH SYNOPSIS
+.nf
+.B #include <int32.h>
+.sp
+\fBf_status_t f_int32s_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_int32s_t            *\fP\fIint32s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int32s array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B int32s
+The int32s array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int32ss_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_int32ss_adjust.3
new file mode 100644 (file)
index 0000000..cce5a9f
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int32ss_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int32ss_adjust
+.SH SYNOPSIS
+.nf
+.B #include <int32.h>
+.sp
+\fBf_status_t f_int32ss_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_int32ss_t           *\fP\fIint32ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int32ss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B int32ss
+The int32ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int32ss_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_int32ss_append.3
new file mode 100644 (file)
index 0000000..6a42a36
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int32ss_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int32ss_append
+.SH SYNOPSIS
+.nf
+.B #include <int32.h>
+.sp
+\fBf_status_t f_int32ss_append\fP(
+    \fBconst f_int32s_t \fP\fIsource\fP,
+    \fBf_int32ss_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source int32s onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source int32s to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int32ss_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_int32ss_append_all.3
new file mode 100644 (file)
index 0000000..f79ebdc
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int32ss_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int32ss_append_all
+.SH SYNOPSIS
+.nf
+.B #include <int32.h>
+.sp
+\fBf_status_t f_int32ss_append_all\fP(
+    \fBconst f_int32ss_t \fP\fIsource\fP,
+    \fBf_int32ss_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source int32ss onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source int32ss to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int32ss_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int32ss_decimate_by.3
new file mode 100644 (file)
index 0000000..709790d
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int32ss_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int32ss_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <int32.h>
+.sp
+\fBf_status_t f_int32ss_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int32ss_t           *\fP\fIint32ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int32ss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B int32ss
+The int32ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int32ss_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int32ss_decrease_by.3
new file mode 100644 (file)
index 0000000..69e5d81
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_int32ss_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int32ss_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <int32.h>
+.sp
+\fBf_status_t f_int32ss_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int32ss_t           *\fP\fIint32ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int32ss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B int32ss
+The int32ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int32ss_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_int32ss_increase.3
new file mode 100644 (file)
index 0000000..adf7157
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int32ss_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int32ss_increase
+.SH SYNOPSIS
+.nf
+.B #include <int32.h>
+.sp
+\fBf_status_t f_int32ss_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_int32ss_t           *\fP\fIint32ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the int32ss array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B int32ss
+The int32ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int32ss_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int32ss_increase_by.3
new file mode 100644 (file)
index 0000000..2076f25
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int32ss_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int32ss_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <int32.h>
+.sp
+\fBf_status_t f_int32ss_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int32ss_t           *\fP\fIint32ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int32ss array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B int32ss
+The int32ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int32ss_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_int32ss_resize.3
new file mode 100644 (file)
index 0000000..4e40d52
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int32ss_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int32ss_resize
+.SH SYNOPSIS
+.nf
+.B #include <int32.h>
+.sp
+\fBf_status_t f_int32ss_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_int32ss_t           *\fP\fIint32ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int32ss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B int32ss
+The int32ss array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int64s_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_int64s_adjust.3
new file mode 100644 (file)
index 0000000..da43d53
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_int64s_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int64s_adjust
+.SH SYNOPSIS
+.nf
+.B #include <int64.h>
+.sp
+\fBf_status_t f_int64s_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_int64s_t            *\fP\fIint64s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int64s array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B int64s
+The int64s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int64s_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_int64s_append.3
new file mode 100644 (file)
index 0000000..41a1494
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int64s_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int64s_append
+.SH SYNOPSIS
+.nf
+.B #include <int64.h>
+.sp
+\fBf_status_t f_int64s_append\fP(
+    \fBconst int64_t \fP\fIsource\fP,
+    \fBf_int64s_t   *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source int64 onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source int64 to append.
+
+.TP
+.B destination
+The destination int64s the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int64s_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_int64s_append_all.3
new file mode 100644 (file)
index 0000000..54cb0eb
--- /dev/null
@@ -0,0 +1,39 @@
+.TH f_int64s_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int64s_append_all
+.SH SYNOPSIS
+.nf
+.B #include <int64.h>
+.sp
+\fBf_status_t f_int64s_append_all\fP(
+    \fBconst f_int64s_t \fP\fIsource\fP,
+    \fBf_int64s_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source int64s onto the destination.
+.PP
+.SH PARAMETERS
+.TP
+.B source
+The source int64s to append.
+
+.TP
+.B destination
+The destination int64s the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int64s_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int64s_decimate_by.3
new file mode 100644 (file)
index 0000000..321c1f4
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_int64s_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int64s_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <int64.h>
+.sp
+\fBf_status_t f_int64s_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int64s_t            *\fP\fIint64s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int64s array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B int64s
+The int64s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int64s_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int64s_decrease_by.3
new file mode 100644 (file)
index 0000000..86471c7
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_int64s_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int64s_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <int64.h>
+.sp
+\fBf_status_t f_int64s_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int64s_t            *\fP\fIint64s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int64s array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B int64s
+The int64s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int64s_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_int64s_increase.3
new file mode 100644 (file)
index 0000000..a714523
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int64s_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int64s_increase
+.SH SYNOPSIS
+.nf
+.B #include <int64.h>
+.sp
+\fBf_status_t f_int64s_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_int64s_t            *\fP\fIint64s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the int64s array, but only if necesary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B int64s
+The int64s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int64s_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int64s_increase_by.3
new file mode 100644 (file)
index 0000000..ebcc84e
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int64s_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int64s_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <int64.h>
+.sp
+\fBf_status_t f_int64s_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int64s_t            *\fP\fIint64s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int64s array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B int64s
+The int64s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int64s_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_int64s_resize.3
new file mode 100644 (file)
index 0000000..68899af
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_int64s_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int64s_resize
+.SH SYNOPSIS
+.nf
+.B #include <int64.h>
+.sp
+\fBf_status_t f_int64s_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_int64s_t            *\fP\fIint64s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int64s array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B int64s
+The int64s array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int64ss_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_int64ss_adjust.3
new file mode 100644 (file)
index 0000000..3e1415d
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_int64ss_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int64ss_adjust
+.SH SYNOPSIS
+.nf
+.B #include <int64.h>
+.sp
+\fBf_status_t f_int64ss_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_int64ss_t           *\fP\fIint64ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int64ss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B int64ss
+The int64ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.PP
+Errors (with error bit) from: f_memory_adjust(). Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int64ss_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_int64ss_append.3
new file mode 100644 (file)
index 0000000..98ec931
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int64ss_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int64ss_append
+.SH SYNOPSIS
+.nf
+.B #include <int64.h>
+.sp
+\fBf_status_t f_int64ss_append\fP(
+    \fBconst f_int64s_t \fP\fIsource\fP,
+    \fBf_int64ss_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source int64s onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source int64s to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int64ss_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_int64ss_append_all.3
new file mode 100644 (file)
index 0000000..9c3e3cb
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int64ss_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int64ss_append_all
+.SH SYNOPSIS
+.nf
+.B #include <int64.h>
+.sp
+\fBf_status_t f_int64ss_append_all\fP(
+    \fBconst f_int64ss_t \fP\fIsource\fP,
+    \fBf_int64ss_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source int64ss onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source int64ss to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int64ss_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int64ss_decimate_by.3
new file mode 100644 (file)
index 0000000..4dcb1f5
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int64ss_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int64ss_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <int64.h>
+.sp
+\fBf_status_t f_int64ss_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int64ss_t           *\fP\fIint64ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int64ss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B int64ss
+The int64ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int64ss_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int64ss_decrease_by.3
new file mode 100644 (file)
index 0000000..8b2253d
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int64ss_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int64ss_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <int64.h>
+.sp
+\fBf_status_t f_int64ss_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int64ss_t           *\fP\fIint64ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int64ss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B int64ss
+The int64ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int64ss_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_int64ss_increase.3
new file mode 100644 (file)
index 0000000..53ca77b
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int64ss_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int64ss_increase
+.SH SYNOPSIS
+.nf
+.B #include <int64.h>
+.sp
+\fBf_status_t f_int64ss_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_int64ss_t           *\fP\fIint64ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the int64ss array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B int64ss
+The int64ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int64ss_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int64ss_increase_by.3
new file mode 100644 (file)
index 0000000..3ddbbb9
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int64ss_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int64ss_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <int64.h>
+.sp
+\fBf_status_t f_int64ss_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int64ss_t           *\fP\fIint64ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int64ss array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B int64ss
+The int64ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int64ss_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_int64ss_resize.3
new file mode 100644 (file)
index 0000000..d97d985
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int64ss_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int64ss_resize
+.SH SYNOPSIS
+.nf
+.B #include <int64.h>
+.sp
+\fBf_status_t f_int64ss_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_int64ss_t           *\fP\fIint64ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int64ss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B int64ss
+The int64ss array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int8s_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_int8s_adjust.3
new file mode 100644 (file)
index 0000000..92933ac
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_int8s_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int8s_adjust
+.SH SYNOPSIS
+.nf
+.B #include <int8.h>
+.sp
+\fBf_status_t f_int8s_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_int8s_t             *\fP\fIint8s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int8s array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B int8s
+The int8s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int8s_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_int8s_append.3
new file mode 100644 (file)
index 0000000..1809d79
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int8s_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int8s_append
+.SH SYNOPSIS
+.nf
+.B #include <int8.h>
+.sp
+\fBf_status_t f_int8s_append\fP(
+    \fBconst int8_t \fP\fIsource\fP,
+    \fBf_int8s_t   *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source int8 onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source int8 to append.
+
+.TP
+.B destination
+The destination int8s the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int8s_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_int8s_append_all.3
new file mode 100644 (file)
index 0000000..f5b22ee
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int8s_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int8s_append_all
+.SH SYNOPSIS
+.nf
+.B #include <int8.h>
+.sp
+\fBf_status_t f_int8s_append_all\fP(
+    \fBconst f_int8s_t \fP\fIsource\fP,
+    \fBf_int8s_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source int8s onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source int8s to append.
+
+.TP
+.B destination
+The destination int8s the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int8s_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int8s_decimate_by.3
new file mode 100644 (file)
index 0000000..93234fa
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_int8s_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int8s_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <int8.h>
+.sp
+\fBf_status_t f_int8s_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int8s_t             *\fP\fIint8s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int8s array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B int8s
+The int8s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int8s_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int8s_decrease_by.3
new file mode 100644 (file)
index 0000000..253ae89
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_int8s_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int8s_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <int8.h>
+.sp
+\fBf_status_t f_int8s_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int8s_t             *\fP\fIint8s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int8s array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B int8s
+The int8s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int8s_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_int8s_increase.3
new file mode 100644 (file)
index 0000000..51efef6
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int8s_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int8s_increase
+.SH SYNOPSIS
+.nf
+.B #include <int8.h>
+.sp
+\fBf_status_t f_int8s_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_int8s_t             *\fP\fIint8s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the int8s array, but only if necesary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B int8s
+The int8s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int8s_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int8s_increase_by.3
new file mode 100644 (file)
index 0000000..019ea6b
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int8s_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int8s_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <int8.h>
+.sp
+\fBf_status_t f_int8s_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int8s_t             *\fP\fIint8s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int8s array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B int8s
+The int8s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int8s_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_int8s_resize.3
new file mode 100644 (file)
index 0000000..a6249e2
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_int8s_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int8s_resize
+.SH SYNOPSIS
+.nf
+.B #include <int8.h>
+.sp
+\fBf_status_t f_int8s_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_int8s_t             *\fP\fIint8s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int8s array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B int8s
+The int8s array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int8ss_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_int8ss_adjust.3
new file mode 100644 (file)
index 0000000..a901b52
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int8ss_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int8ss_adjust
+.SH SYNOPSIS
+.nf
+.B #include <int8.h>
+.sp
+\fBf_status_t f_int8ss_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_int8ss_t            *\fP\fIint8ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int8ss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B int8ss
+The int8ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.PP
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int8ss_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_int8ss_append.3
new file mode 100644 (file)
index 0000000..9574bc8
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int8ss_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int8ss_append
+.SH SYNOPSIS
+.nf
+.B #include <int8.h>
+.sp
+\fBf_status_t f_int8ss_append\fP(
+    \fBconst f_int8s_t \fP\fIsource\fP,
+    \fBf_int8ss_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source int8s onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source int8s to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int8ss_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_int8ss_append_all.3
new file mode 100644 (file)
index 0000000..c0c8545
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int8ss_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int8ss_append_all
+.SH SYNOPSIS
+.nf
+.B #include <int8.h>
+.sp
+\fBf_status_t f_int8ss_append_all\fP(
+    \fBconst f_int8ss_t \fP\fIsource\fP,
+    \fBf_int8ss_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source int8ss onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source int8ss to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int8ss_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int8ss_decimate_by.3
new file mode 100644 (file)
index 0000000..fc27296
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int8ss_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int8ss_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <int8.h>
+.sp
+\fBf_status_t f_int8ss_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int8ss_t            *\fP\fIint8ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int8ss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B int8ss
+The int8ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int8ss_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int8ss_decrease_by.3
new file mode 100644 (file)
index 0000000..55344d0
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int8ss_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int8ss_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <int8.h>
+.sp
+\fBf_status_t f_int8ss_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int8ss_t            *\fP\fIint8ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int8ss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B int8ss
+The int8ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int8ss_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_int8ss_increase.3
new file mode 100644 (file)
index 0000000..4e2a545
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int8ss_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int8ss_increase
+.SH SYNOPSIS
+.nf
+.B #include <int8.h>
+.sp
+\fBf_status_t f_int8ss_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_int8ss_t            *\fP\fIint8ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the int8ss array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B int8ss
+The int8ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int8ss_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_int8ss_increase_by.3
new file mode 100644 (file)
index 0000000..bc25ae2
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_int8ss_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int8ss_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <int8.h>
+.sp
+\fBf_status_t f_int8ss_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_int8ss_t            *\fP\fIint8ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int8ss array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B int8ss
+The int8ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_int8ss_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_int8ss_resize.3
new file mode 100644 (file)
index 0000000..6a7c335
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_int8ss_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_int8ss_resize
+.SH SYNOPSIS
+.nf
+.B #include <int8.h>
+.sp
+\fBf_status_t f_int8ss_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_int8ss_t            *\fP\fIint8ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the int8ss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B int8ss
+The int8ss array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_states_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_states_adjust.3
new file mode 100644 (file)
index 0000000..c454d2f
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_states_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_states_adjust
+.SH SYNOPSIS
+.nf
+.B #include <state.h>
+.sp
+\fBf_status_t f_states_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_states_t            *\fP\fIstates\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string states array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B states
+The string states array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_states_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_states_append.3
new file mode 100644 (file)
index 0000000..4475b6e
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_states_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_states_append
+.SH SYNOPSIS
+.nf
+.B #include <state.h>
+.sp
+\fBf_status_t f_states_append\fP(
+    \fBconst f_state_t \fP\fIsource\fP,
+    \fBf_states_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source state onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source state to append.
+
+.TP
+.B destination
+The destination states the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_states_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_states_append_all.3
new file mode 100644 (file)
index 0000000..7bb9686
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_states_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_states_append_all
+.SH SYNOPSIS
+.nf
+.B #include <state.h>
+.sp
+\fBf_status_t f_states_append_all\fP(
+    \fBconst f_states_t \fP\fIsource\fP,
+    \fBf_states_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source states onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source states to append.
+
+.TP
+.B destination
+The destination states the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_states_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_states_decimate_by.3
new file mode 100644 (file)
index 0000000..6da5f74
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_states_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_states_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <state.h>
+.sp
+\fBf_status_t f_states_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_states_t            *\fP\fIstates\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string states array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B states
+The string states array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_states_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_states_decrease_by.3
new file mode 100644 (file)
index 0000000..abeb0e1
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_states_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_states_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <state.h>
+.sp
+\fBf_status_t f_states_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_states_t            *\fP\fIstates\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string states array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B states
+The string states array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_states_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_states_increase.3
new file mode 100644 (file)
index 0000000..83f1f91
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_states_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_states_increase
+.SH SYNOPSIS
+.nf
+.B #include <state.h>
+.sp
+\fBf_status_t f_states_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_states_t            *\fP\fIstates\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string states array, but only if necesary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B states
+The string states array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_states_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_states_increase_by.3
new file mode 100644 (file)
index 0000000..3bf0518
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_states_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_states_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <state.h>
+.sp
+\fBf_status_t f_states_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_states_t            *\fP\fIstates\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string states array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B states
+The string states array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_states_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_states_resize.3
new file mode 100644 (file)
index 0000000..24ce0ca
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_states_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_states_resize
+.SH SYNOPSIS
+.nf
+.B #include <state.h>
+.sp
+\fBf_status_t f_states_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_states_t            *\fP\fIstates\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string states array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B states
+The string states array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_statess_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_statess_adjust.3
new file mode 100644 (file)
index 0000000..8228bd4
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_statess_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_statess_adjust
+.SH SYNOPSIS
+.nf
+.B #include <state.h>
+.sp
+\fBf_status_t f_statess_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_statess_t           *\fP\fIstatess\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string statess array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B statess
+The string statess array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_statess_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_statess_append.3
new file mode 100644 (file)
index 0000000..f4b5fc8
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_statess_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_statess_append
+.SH SYNOPSIS
+.nf
+.B #include <state.h>
+.sp
+\fBf_status_t f_statess_append\fP(
+    \fBconst f_states_t \fP\fIsource\fP,
+    \fBf_statess_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source states onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source states to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_statess_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_statess_append_all.3
new file mode 100644 (file)
index 0000000..9b49528
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_statess_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_statess_append_all
+.SH SYNOPSIS
+.nf
+.B #include <state.h>
+.sp
+\fBf_status_t f_statess_append_all\fP(
+    \fBconst f_statess_t \fP\fIsource\fP,
+    \fBf_statess_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source statess onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source statess to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_statess_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_statess_decimate_by.3
new file mode 100644 (file)
index 0000000..5b2d640
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_statess_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_statess_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <state.h>
+.sp
+\fBf_status_t f_statess_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_statess_t           *\fP\fIstatess\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string statess array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B statess
+The string statess array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.PP
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_statess_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_statess_decrease_by.3
new file mode 100644 (file)
index 0000000..d3c7cce
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_statess_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_statess_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <state.h>
+.sp
+\fBf_status_t f_statess_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_statess_t           *\fP\fIstatess\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string statess array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B statess
+The string statess array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.PP
+Errors (with error bit) from: f_memory_delete(). Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_statess_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_statess_increase.3
new file mode 100644 (file)
index 0000000..6cff216
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_statess_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_statess_increase
+.SH SYNOPSIS
+.nf
+.B #include <state.h>
+.sp
+\fBf_status_t f_statess_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_statess_t           *\fP\fIstatess\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string statess array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B statess
+The string statess array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_statess_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_statess_increase_by.3
new file mode 100644 (file)
index 0000000..df349e1
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_statess_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_statess_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <state.h>
+.sp
+\fBf_status_t f_statess_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_statess_t           *\fP\fIstatess\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string statess array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B statess
+The string statess array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_statess_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_statess_resize.3
new file mode 100644 (file)
index 0000000..09223ab
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_statess_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_statess_resize
+.SH SYNOPSIS
+.nf
+.B #include <state.h>
+.sp
+\fBf_status_t f_statess_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_statess_t           *\fP\fIstatess\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string statess array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B statess
+The string statess array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint128s_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint128s_adjust.3
new file mode 100644 (file)
index 0000000..f6f85a1
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_uint128s_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint128s_adjust
+.SH SYNOPSIS
+.nf
+.B #include <uint128.h>
+.sp
+\fBf_status_t f_uint128s_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_uint128s_t          *\fP\fIuint128s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint128s array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B uint128s
+The string uint128s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint128s_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint128s_append.3
new file mode 100644 (file)
index 0000000..af5b94d
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint128s_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint128s_append
+.SH SYNOPSIS
+.nf
+.B #include <uint128.h>
+.sp
+\fBf_status_t f_uint128s_append\fP(
+    \fBconst uint128_t \fP\fIsource\fP,
+    \fBf_uint128s_t   *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source uint128 onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source uint128 to append.
+
+.TP
+.B destination
+The destination uint128s the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint128s_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint128s_append_all.3
new file mode 100644 (file)
index 0000000..0178de7
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint128s_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint128s_append_all
+.SH SYNOPSIS
+.nf
+.B #include <uint128.h>
+.sp
+\fBf_status_t f_uint128s_append_all\fP(
+    \fBconst f_uint128s_t \fP\fIsource\fP,
+    \fBf_uint128s_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source uint128s onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source uint128s to append.
+
+.TP
+.B destination
+The destination uint128s the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint128s_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint128s_decimate_by.3
new file mode 100644 (file)
index 0000000..e4a16a7
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_uint128s_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint128s_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <uint128.h>
+.sp
+\fBf_status_t f_uint128s_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint128s_t          *\fP\fIuint128s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint128s array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B uint128s
+The string uint128s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint128s_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint128s_decrease_by.3
new file mode 100644 (file)
index 0000000..0e6fcde
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_uint128s_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint128s_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <uint128.h>
+.sp
+\fBf_status_t f_uint128s_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint128s_t          *\fP\fIuint128s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint128s array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B uint128s
+The string uint128s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint128s_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint128s_increase.3
new file mode 100644 (file)
index 0000000..0f387c3
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint128s_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint128s_increase
+.SH SYNOPSIS
+.nf
+.B #include <uint128.h>
+.sp
+\fBf_status_t f_uint128s_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_uint128s_t          *\fP\fIuint128s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string uint128s array, but only if necesary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B uint128s
+The string uint128s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint128s_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint128s_increase_by.3
new file mode 100644 (file)
index 0000000..e8bc60d
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint128s_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint128s_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <uint128.h>
+.sp
+\fBf_status_t f_uint128s_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint128s_t          *\fP\fIuint128s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint128s array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B uint128s
+The string uint128s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint128s_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint128s_resize.3
new file mode 100644 (file)
index 0000000..a8f1aa1
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_uint128s_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint128s_resize
+.SH SYNOPSIS
+.nf
+.B #include <uint128.h>
+.sp
+\fBf_status_t f_uint128s_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_uint128s_t          *\fP\fIuint128s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint128s array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B uint128s
+The string uint128s array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint128ss_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint128ss_adjust.3
new file mode 100644 (file)
index 0000000..2cd298c
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint128ss_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint128ss_adjust
+.SH SYNOPSIS
+.nf
+.B #include <uint128.h>
+.sp
+\fBf_status_t f_uint128ss_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_uint128ss_t         *\fP\fIuint128ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint128ss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B uint128ss
+The string uint128ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint128ss_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint128ss_append.3
new file mode 100644 (file)
index 0000000..130140a
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint128ss_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint128ss_append
+.SH SYNOPSIS
+.nf
+.B #include <uint128.h>
+.sp
+\fBf_status_t f_uint128ss_append\fP(
+    \fBconst f_uint128s_t \fP\fIsource\fP,
+    \fBf_uint128ss_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source uint128s onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source uint128s to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint128ss_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint128ss_append_all.3
new file mode 100644 (file)
index 0000000..e40b693
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint128ss_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint128ss_append_all
+.SH SYNOPSIS
+.nf
+.B #include <uint128.h>
+.sp
+\fBf_status_t f_uint128ss_append_all\fP(
+    \fBconst f_uint128ss_t \fP\fIsource\fP,
+    \fBf_uint128ss_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source uint128ss onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source uint128ss to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint128ss_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint128ss_decimate_by.3
new file mode 100644 (file)
index 0000000..b2aebbc
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_uint128ss_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint128ss_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <uint128.h>
+.sp
+\fBf_status_t f_uint128ss_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint128ss_t         *\fP\fIuint128ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint128ss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B uint128ss
+The string uint128ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint128ss_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint128ss_decrease_by.3
new file mode 100644 (file)
index 0000000..10225b9
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_uint128ss_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint128ss_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <uint128.h>
+.sp
+\fBf_status_t f_uint128ss_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint128ss_t         *\fP\fIuint128ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint128ss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B uint128ss
+The string uint128ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint128ss_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint128ss_increase.3
new file mode 100644 (file)
index 0000000..4dc501a
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint128ss_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint128ss_increase
+.SH SYNOPSIS
+.nf
+.B #include <uint128.h>
+.sp
+\fBf_status_t f_uint128ss_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_uint128ss_t         *\fP\fIuint128ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string uint128ss array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B uint128ss
+The string uint128ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint128ss_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint128ss_increase_by.3
new file mode 100644 (file)
index 0000000..af9edf6
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint128ss_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint128ss_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <uint128.h>
+.sp
+\fBf_status_t f_uint128ss_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint128ss_t         *\fP\fIuint128ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint128ss array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B uint128ss
+The string uint128ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint128ss_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint128ss_resize.3
new file mode 100644 (file)
index 0000000..d6c28cb
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint128ss_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint128ss_resize
+.SH SYNOPSIS
+.nf
+.B #include <uint128.h>
+.sp
+\fBf_status_t f_uint128ss_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_uint128ss_t         *\fP\fIuint128ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint128ss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B uint128ss
+The string uint128ss array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint16s_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint16s_adjust.3
new file mode 100644 (file)
index 0000000..0f7da9d
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_uint16s_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint16s_adjust
+.SH SYNOPSIS
+.nf
+.B #include <uint16.h>
+.sp
+\fBf_status_t f_uint16s_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_uint16s_t           *\fP\fIuint16s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint16s array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B uint16s
+The string uint16s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint16s_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint16s_append.3
new file mode 100644 (file)
index 0000000..1057da2
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint16s_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint16s_append
+.SH SYNOPSIS
+.nf
+.B #include <uint16.h>
+.sp
+\fBf_status_t f_uint16s_append\fP(
+    \fBconst uint16_t \fP\fIsource\fP,
+    \fBf_uint16s_t   *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source uint16 onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source uint16 to append.
+
+.TP
+.B destination
+The destination uint16s the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint16s_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint16s_append_all.3
new file mode 100644 (file)
index 0000000..eb4fc2b
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint16s_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint16s_append_all
+.SH SYNOPSIS
+.nf
+.B #include <uint16.h>
+.sp
+\fBf_status_t f_uint16s_append_all\fP(
+    \fBconst f_uint16s_t \fP\fIsource\fP,
+    \fBf_uint16s_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source uint16s onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source uint16s to append.
+
+.TP
+.B destination
+The destination uint16s the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint16s_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint16s_decimate_by.3
new file mode 100644 (file)
index 0000000..488a280
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_uint16s_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint16s_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <uint16.h>
+.sp
+\fBf_status_t f_uint16s_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint16s_t           *\fP\fIuint16s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint16s array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B uint16s
+The string uint16s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint16s_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint16s_decrease_by.3
new file mode 100644 (file)
index 0000000..a731dc1
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint16s_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint16s_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <uint16.h>
+.sp
+\fBf_status_t f_uint16s_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint16s_t           *\fP\fIuint16s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint16s array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B uint16s
+The string uint16s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint16s_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint16s_increase.3
new file mode 100644 (file)
index 0000000..eab0f1c
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint16s_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint16s_increase
+.SH SYNOPSIS
+.nf
+.B #include <uint16.h>
+.sp
+\fBf_status_t f_uint16s_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_uint16s_t           *\fP\fIuint16s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string uint16s array, but only if necesary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B uint16s
+The string uint16s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint16s_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint16s_increase_by.3
new file mode 100644 (file)
index 0000000..75d4bb5
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint16s_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint16s_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <uint16.h>
+.sp
+\fBf_status_t f_uint16s_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint16s_t           *\fP\fIuint16s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint16s array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B uint16s
+The string uint16s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint16s_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint16s_resize.3
new file mode 100644 (file)
index 0000000..9ff5313
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_uint16s_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint16s_resize
+.SH SYNOPSIS
+.nf
+.B #include <uint16.h>
+.sp
+\fBf_status_t f_uint16s_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_uint16s_t           *\fP\fIuint16s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint16s array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B uint16s
+The string uint16s array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint16ss_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint16ss_adjust.3
new file mode 100644 (file)
index 0000000..47d24f9
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint16ss_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint16ss_adjust
+.SH SYNOPSIS
+.nf
+.B #include <uint16.h>
+.sp
+\fBf_status_t f_uint16ss_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_uint16ss_t          *\fP\fIuint16ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint16ss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B uint16ss
+The string uint16ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint16ss_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint16ss_append.3
new file mode 100644 (file)
index 0000000..d8b9323
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint16ss_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint16ss_append
+.SH SYNOPSIS
+.nf
+.B #include <uint16.h>
+.sp
+\fBf_status_t f_uint16ss_append\fP(
+    \fBconst f_uint16s_t \fP\fIsource\fP,
+    \fBf_uint16ss_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source uint16s onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source uint16s to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint16ss_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint16ss_append_all.3
new file mode 100644 (file)
index 0000000..10e6597
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint16ss_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint16ss_append_all
+.SH SYNOPSIS
+.nf
+.B #include <uint16.h>
+.sp
+\fBf_status_t f_uint16ss_append_all\fP(
+    \fBconst f_uint16ss_t \fP\fIsource\fP,
+    \fBf_uint16ss_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source uint16ss onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source uint16ss to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint16ss_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint16ss_decimate_by.3
new file mode 100644 (file)
index 0000000..aef50ca
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint16ss_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint16ss_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <uint16.h>
+.sp
+\fBf_status_t f_uint16ss_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint16ss_t          *\fP\fIuint16ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint16ss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B uint16ss
+The string uint16ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint16ss_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint16ss_decrease_by.3
new file mode 100644 (file)
index 0000000..1145ef4
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_uint16ss_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint16ss_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <uint16.h>
+.sp
+\fBf_status_t f_uint16ss_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint16ss_t          *\fP\fIuint16ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint16ss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B uint16ss
+The string uint16ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint16ss_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint16ss_increase.3
new file mode 100644 (file)
index 0000000..9b843b4
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint16ss_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint16ss_increase
+.SH SYNOPSIS
+.nf
+.B #include <uint16.h>
+.sp
+\fBf_status_t f_uint16ss_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_uint16ss_t          *\fP\fIuint16ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string uint16ss array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B uint16ss
+The string uint16ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint16ss_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint16ss_increase_by.3
new file mode 100644 (file)
index 0000000..eb514af
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint16ss_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint16ss_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <uint16.h>
+.sp
+\fBf_status_t f_uint16ss_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint16ss_t          *\fP\fIuint16ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint16ss array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B uint16ss
+The string uint16ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint16ss_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint16ss_resize.3
new file mode 100644 (file)
index 0000000..442f937
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint16ss_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint16ss_resize
+.SH SYNOPSIS
+.nf
+.B #include <uint16.h>
+.sp
+\fBf_status_t f_uint16ss_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_uint16ss_t          *\fP\fIuint16ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint16ss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B uint16ss
+The string uint16ss array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint32s_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint32s_adjust.3
new file mode 100644 (file)
index 0000000..62ae8ab
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_uint32s_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint32s_adjust
+.SH SYNOPSIS
+.nf
+.B #include <uint32.h>
+.sp
+\fBf_status_t f_uint32s_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_uint32s_t           *\fP\fIuint32s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint32s array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B uint32s
+The string uint32s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint32s_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint32s_append.3
new file mode 100644 (file)
index 0000000..af726aa
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint32s_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint32s_append
+.SH SYNOPSIS
+.nf
+.B #include <uint32.h>
+.sp
+\fBf_status_t f_uint32s_append\fP(
+    \fBconst uint32_t \fP\fIsource\fP,
+    \fBf_uint32s_t   *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source uint32 onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source uint32 to append.
+
+.TP
+.B destination
+The destination uint32s the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint32s_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint32s_append_all.3
new file mode 100644 (file)
index 0000000..9d8e862
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint32s_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint32s_append_all
+.SH SYNOPSIS
+.nf
+.B #include <uint32.h>
+.sp
+\fBf_status_t f_uint32s_append_all\fP(
+    \fBconst f_uint32s_t \fP\fIsource\fP,
+    \fBf_uint32s_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source uint32s onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source uint32s to append.
+
+.TP
+.B destination
+The destination uint32s the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint32s_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint32s_decimate_by.3
new file mode 100644 (file)
index 0000000..e043120
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_uint32s_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint32s_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <uint32.h>
+.sp
+\fBf_status_t f_uint32s_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint32s_t           *\fP\fIuint32s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint32s array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B uint32s
+The string uint32s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint32s_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint32s_decrease_by.3
new file mode 100644 (file)
index 0000000..f58c220
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint32s_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint32s_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <uint32.h>
+.sp
+\fBf_status_t f_uint32s_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint32s_t           *\fP\fIuint32s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint32s array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B uint32s
+The string uint32s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint32s_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint32s_increase.3
new file mode 100644 (file)
index 0000000..0eea27f
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint32s_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint32s_increase
+.SH SYNOPSIS
+.nf
+.B #include <uint32.h>
+.sp
+\fBf_status_t f_uint32s_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_uint32s_t           *\fP\fIuint32s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string uint32s array, but only if necesary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B uint32s
+The string uint32s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint32s_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint32s_increase_by.3
new file mode 100644 (file)
index 0000000..4019b10
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint32s_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint32s_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <uint32.h>
+.sp
+\fBf_status_t f_uint32s_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint32s_t           *\fP\fIuint32s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint32s array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B uint32s
+The string uint32s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint32s_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint32s_resize.3
new file mode 100644 (file)
index 0000000..ecc0942
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_uint32s_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint32s_resize
+.SH SYNOPSIS
+.nf
+.B #include <uint32.h>
+.sp
+\fBf_status_t f_uint32s_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_uint32s_t           *\fP\fIuint32s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint32s array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B uint32s
+The string uint32s array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint32ss_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint32ss_adjust.3
new file mode 100644 (file)
index 0000000..9a773f5
--- /dev/null
@@ -0,0 +1,39 @@
+.TH f_uint32ss_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint32ss_adjust
+.SH SYNOPSIS
+.nf
+.B #include <uint32.h>
+.sp
+\fBf_status_t f_uint32ss_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_uint32ss_t          *\fP\fIuint32ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint32ss array.
+.PP
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B uint32ss
+The string uint32ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint32ss_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint32ss_append.3
new file mode 100644 (file)
index 0000000..4a3eb18
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint32ss_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint32ss_append
+.SH SYNOPSIS
+.nf
+.B #include <uint32.h>
+.sp
+\fBf_status_t f_uint32ss_append\fP(
+    \fBconst f_uint32s_t \fP\fIsource\fP,
+    \fBf_uint32ss_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source uint32s onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source uint32s to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint32ss_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint32ss_append_all.3
new file mode 100644 (file)
index 0000000..4853f46
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint32ss_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint32ss_append_all
+.SH SYNOPSIS
+.nf
+.B #include <uint32.h>
+.sp
+\fBf_status_t f_uint32ss_append_all\fP(
+    \fBconst f_uint32ss_t \fP\fIsource\fP,
+    \fBf_uint32ss_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source uint32ss onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source uint32ss to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint32ss_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint32ss_decimate_by.3
new file mode 100644 (file)
index 0000000..6549231
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint32ss_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint32ss_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <uint32.h>
+.sp
+\fBf_status_t f_uint32ss_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint32ss_t          *\fP\fIuint32ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint32ss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B uint32ss
+The string uint32ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint32ss_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint32ss_decrease_by.3
new file mode 100644 (file)
index 0000000..f355798
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_uint32ss_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint32ss_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <uint32.h>
+.sp
+\fBf_status_t f_uint32ss_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint32ss_t          *\fP\fIuint32ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint32ss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B uint32ss
+The string uint32ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint32ss_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint32ss_increase.3
new file mode 100644 (file)
index 0000000..ab6c991
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint32ss_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint32ss_increase
+.SH SYNOPSIS
+.nf
+.B #include <uint32.h>
+.sp
+\fBf_status_t f_uint32ss_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_uint32ss_t          *\fP\fIuint32ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string uint32ss array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B uint32ss
+The string uint32ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint32ss_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint32ss_increase_by.3
new file mode 100644 (file)
index 0000000..4b0fd8b
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint32ss_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint32ss_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <uint32.h>
+.sp
+\fBf_status_t f_uint32ss_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint32ss_t          *\fP\fIuint32ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint32ss array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B uint32ss
+The string uint32ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint32ss_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint32ss_resize.3
new file mode 100644 (file)
index 0000000..6bb518c
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint32ss_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint32ss_resize
+.SH SYNOPSIS
+.nf
+.B #include <uint32.h>
+.sp
+\fBf_status_t f_uint32ss_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_uint32ss_t          *\fP\fIuint32ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint32ss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B uint32ss
+The string uint32ss array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint64s_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint64s_adjust.3
new file mode 100644 (file)
index 0000000..dc6984f
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_uint64s_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint64s_adjust
+.SH SYNOPSIS
+.nf
+.B #include <uint64.h>
+.sp
+\fBf_status_t f_uint64s_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_uint64s_t           *\fP\fIuint64s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint64s array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B uint64s
+The string uint64s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint64s_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint64s_append.3
new file mode 100644 (file)
index 0000000..d0e9fd1
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint64s_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint64s_append
+.SH SYNOPSIS
+.nf
+.B #include <uint64.h>
+.sp
+\fBf_status_t f_uint64s_append\fP(
+    \fBconst uint64_t \fP\fIsource\fP,
+    \fBf_uint64s_t   *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source uint64 onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source uint64 to append.
+
+.TP
+.B destination
+The destination uint64s the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint64s_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint64s_append_all.3
new file mode 100644 (file)
index 0000000..2df3b69
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint64s_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint64s_append_all
+.SH SYNOPSIS
+.nf
+.B #include <uint64.h>
+.sp
+\fBf_status_t f_uint64s_append_all\fP(
+    \fBconst f_uint64s_t \fP\fIsource\fP,
+    \fBf_uint64s_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source uint64s onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source uint64s to append.
+
+.TP
+.B destination
+The destination uint64s the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint64s_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint64s_decimate_by.3
new file mode 100644 (file)
index 0000000..c6cef3e
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_uint64s_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint64s_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <uint64.h>
+.sp
+\fBf_status_t f_uint64s_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint64s_t           *\fP\fIuint64s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint64s array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B uint64s
+The string uint64s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint64s_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint64s_decrease_by.3
new file mode 100644 (file)
index 0000000..7b35538
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_uint64s_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint64s_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <uint64.h>
+.sp
+\fBf_status_t f_uint64s_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint64s_t           *\fP\fIuint64s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint64s array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B uint64s
+The string uint64s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint64s_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint64s_increase.3
new file mode 100644 (file)
index 0000000..8a75f64
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint64s_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint64s_increase
+.SH SYNOPSIS
+.nf
+.B #include <uint64.h>
+.sp
+\fBf_status_t f_uint64s_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_uint64s_t           *\fP\fIuint64s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string uint64s array, but only if necesary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B uint64s
+The string uint64s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint64s_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint64s_increase_by.3
new file mode 100644 (file)
index 0000000..b731343
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint64s_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint64s_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <uint64.h>
+.sp
+\fBf_status_t f_uint64s_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint64s_t           *\fP\fIuint64s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint64s array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B uint64s
+The string uint64s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint64s_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint64s_resize.3
new file mode 100644 (file)
index 0000000..79f908a
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_uint64s_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint64s_resize
+.SH SYNOPSIS
+.nf
+.B #include <uint64.h>
+.sp
+\fBf_status_t f_uint64s_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_uint64s_t           *\fP\fIuint64s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint64s array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B uint64s
+The string uint64s array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint64ss_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint64ss_adjust.3
new file mode 100644 (file)
index 0000000..fcf16df
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint64ss_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint64ss_adjust
+.SH SYNOPSIS
+.nf
+.B #include <uint64.h>
+.sp
+\fBf_status_t f_uint64ss_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_uint64ss_t          *\fP\fIuint64ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint64ss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B uint64ss
+The string uint64ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint64ss_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint64ss_append.3
new file mode 100644 (file)
index 0000000..e42b735
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint64ss_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint64ss_append
+.SH SYNOPSIS
+.nf
+.B #include <uint64.h>
+.sp
+\fBf_status_t f_uint64ss_append\fP(
+    \fBconst f_uint64s_t \fP\fIsource\fP,
+    \fBf_uint64ss_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source uint64s onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source uint64s to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint64ss_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint64ss_append_all.3
new file mode 100644 (file)
index 0000000..654677a
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint64ss_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint64ss_append_all
+.SH SYNOPSIS
+.nf
+.B #include <uint64.h>
+.sp
+\fBf_status_t f_uint64ss_append_all\fP(
+    \fBconst f_uint64ss_t \fP\fIsource\fP,
+    \fBf_uint64ss_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source uint64ss onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source uint64ss to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.PP
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint64ss_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint64ss_decimate_by.3
new file mode 100644 (file)
index 0000000..ada1eac
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint64ss_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint64ss_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <uint64.h>
+.sp
+\fBf_status_t f_uint64ss_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint64ss_t          *\fP\fIuint64ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint64ss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B uint64ss
+The string uint64ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint64ss_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint64ss_decrease_by.3
new file mode 100644 (file)
index 0000000..aa75b8d
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint64ss_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint64ss_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <uint64.h>
+.sp
+\fBf_status_t f_uint64ss_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint64ss_t          *\fP\fIuint64ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint64ss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B uint64ss
+The string uint64ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint64ss_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint64ss_increase.3
new file mode 100644 (file)
index 0000000..34c9358
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint64ss_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint64ss_increase
+.SH SYNOPSIS
+.nf
+.B #include <uint64.h>
+.sp
+\fBf_status_t f_uint64ss_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_uint64ss_t          *\fP\fIuint64ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string uint64ss array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B uint64ss
+The string uint64ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint64ss_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint64ss_increase_by.3
new file mode 100644 (file)
index 0000000..0d62a1e
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint64ss_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint64ss_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <uint64.h>
+.sp
+\fBf_status_t f_uint64ss_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint64ss_t          *\fP\fIuint64ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint64ss array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B uint64ss
+The string uint64ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint64ss_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint64ss_resize.3
new file mode 100644 (file)
index 0000000..566fb04
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint64ss_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint64ss_resize
+.SH SYNOPSIS
+.nf
+.B #include <uint64.h>
+.sp
+\fBf_status_t f_uint64ss_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_uint64ss_t          *\fP\fIuint64ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint64ss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B uint64ss
+The string uint64ss array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint8s_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint8s_adjust.3
new file mode 100644 (file)
index 0000000..c701b41
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_uint8s_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint8s_adjust
+.SH SYNOPSIS
+.nf
+.B #include <uint8.h>
+.sp
+\fBf_status_t f_uint8s_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_uint8s_t            *\fP\fIuint8s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint8s array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B uint8s
+The string uint8s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint8s_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint8s_append.3
new file mode 100644 (file)
index 0000000..6b1417f
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint8s_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint8s_append
+.SH SYNOPSIS
+.nf
+.B #include <uint8.h>
+.sp
+\fBf_status_t f_uint8s_append\fP(
+    \fBconst uint8_t \fP\fIsource\fP,
+    \fBf_uint8s_t   *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source uint8 onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source uint8 to append.
+
+.TP
+.B destination
+The destination uint8s the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint8s_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint8s_append_all.3
new file mode 100644 (file)
index 0000000..c9c3c62
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint8s_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint8s_append_all
+.SH SYNOPSIS
+.nf
+.B #include <uint8.h>
+.sp
+\fBf_status_t f_uint8s_append_all\fP(
+    \fBconst f_uint8s_t \fP\fIsource\fP,
+    \fBf_uint8s_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source uint8s onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source uint8s to append.
+
+.TP
+.B destination
+The destination uint8s the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint8s_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint8s_decimate_by.3
new file mode 100644 (file)
index 0000000..5ba6e1c
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_uint8s_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint8s_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <uint8.h>
+.sp
+\fBf_status_t f_uint8s_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint8s_t            *\fP\fIuint8s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint8s array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B uint8s
+The string uint8s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint8s_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint8s_decrease_by.3
new file mode 100644 (file)
index 0000000..2aecb94
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_uint8s_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint8s_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <uint8.h>
+.sp
+\fBf_status_t f_uint8s_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint8s_t            *\fP\fIuint8s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint8s array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to les than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B uint8s
+The string uint8s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint8s_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint8s_increase.3
new file mode 100644 (file)
index 0000000..ac6935a
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint8s_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint8s_increase
+.SH SYNOPSIS
+.nf
+.B #include <uint8.h>
+.sp
+\fBf_status_t f_uint8s_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_uint8s_t            *\fP\fIuint8s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string uint8s array, but only if necesary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B uint8s
+The string uint8s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint8s_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint8s_increase_by.3
new file mode 100644 (file)
index 0000000..483051e
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint8s_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint8s_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <uint8.h>
+.sp
+\fBf_status_t f_uint8s_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint8s_t            *\fP\fIuint8s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint8s array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B uint8s
+The string uint8s array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint8s_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint8s_resize.3
new file mode 100644 (file)
index 0000000..4f22f72
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_uint8s_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint8s_resize
+.SH SYNOPSIS
+.nf
+.B #include <uint8.h>
+.sp
+\fBf_status_t f_uint8s_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_uint8s_t            *\fP\fIuint8s\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint8s array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B uint8s
+The string uint8s array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint8ss_adjust.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint8ss_adjust.3
new file mode 100644 (file)
index 0000000..22c4676
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint8ss_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint8ss_adjust
+.SH SYNOPSIS
+.nf
+.B #include <uint8.h>
+.sp
+\fBf_status_t f_uint8ss_adjust\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_uint8ss_t           *\fP\fIuint8ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint8ss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B uint8ss
+The string uint8ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint8ss_append.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint8ss_append.3
new file mode 100644 (file)
index 0000000..d07646a
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint8ss_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint8ss_append
+.SH SYNOPSIS
+.nf
+.B #include <uint8.h>
+.sp
+\fBf_status_t f_uint8ss_append\fP(
+    \fBconst f_uint8s_t \fP\fIsource\fP,
+    \fBf_uint8ss_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source uint8s onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source uint8s to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint8ss_append_all.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint8ss_append_all.3
new file mode 100644 (file)
index 0000000..bc41191
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint8ss_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint8ss_append_all
+.SH SYNOPSIS
+.nf
+.B #include <uint8.h>
+.sp
+\fBf_status_t f_uint8ss_append_all\fP(
+    \fBconst f_uint8ss_t \fP\fIsource\fP,
+    \fBf_uint8ss_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source uint8ss onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source uint8ss to append.
+
+.TP
+.B destination
+The destination ranges the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint8ss_decimate_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint8ss_decimate_by.3
new file mode 100644 (file)
index 0000000..b68d544
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint8ss_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint8ss_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <uint8.h>
+.sp
+\fBf_status_t f_uint8ss_decimate_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint8ss_t           *\fP\fIuint8ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint8ss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B uint8ss
+The string uint8ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.br
+Errors (with error bit) from: f_memory_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint8ss_decrease_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint8ss_decrease_by.3
new file mode 100644 (file)
index 0000000..5d6f0b7
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint8ss_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint8ss_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <uint8.h>
+.sp
+\fBf_status_t f_uint8ss_decrease_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint8ss_t           *\fP\fIuint8ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint8ss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B uint8ss
+The string uint8ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.b
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint8ss_increase.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint8ss_increase.3
new file mode 100644 (file)
index 0000000..c6f48c7
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint8ss_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint8ss_increase
+.SH SYNOPSIS
+.nf
+.B #include <uint8.h>
+.sp
+\fBf_status_t f_uint8ss_increase\fP(
+    \fBconst f_array_length_t \fP\fIstep\fP,
+    \fBf_uint8ss_t           *\fP\fIuint8ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string uint8ss array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B uint8ss
+The string uint8ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint8ss_increase_by.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint8ss_increase_by.3
new file mode 100644 (file)
index 0000000..e0f90af
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_uint8ss_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint8ss_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <uint8.h>
+.sp
+\fBf_status_t f_uint8ss_increase_by\fP(
+    \fBconst f_array_length_t \fP\fIamount\fP,
+    \fBf_uint8ss_t           *\fP\fIuint8ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint8ss array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B uint8ss
+The string uint8ss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_type_array/data/documentation/man/man3/f_uint8ss_resize.3 b/level_0/f_type_array/data/documentation/man/man3/f_uint8ss_resize.3
new file mode 100644 (file)
index 0000000..b7f21a8
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_uint8ss_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_uint8ss_resize
+.SH SYNOPSIS
+.nf
+.B #include <uint8.h>
+.sp
+\fBf_status_t f_uint8ss_resize\fP(
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_uint8ss_t           *\fP\fIuint8ss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string uint8ss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B uint8ss
+The string uint8ss array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_delete().
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index ca9af56db19f54a8f4d14deea3d4a6206d846be4..2945e5609b55032289ac43db7288758d9c48938a 100644 (file)
@@ -37,7 +37,7 @@ extern "C" {
  *   F_utf_fragment (with error bit) if character is a UTF-8 fragment.
  *   F_utf_not (with error bit) if unicode is an invalid Unicode character.
  *
- * @see f_utf_character_is_alphabetic() 
+ * @see f_utf_character_is_alphabetic()
  * @see f_utf_character_is_alphabetic_digit()
  * @see f_utf_character_is_alphabetic_numeric()
  * @see f_utf_character_is_graph()
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index 6f339bcf4f1380859df48705bb39f4e4398d71b7..1f1350765373d3e1a7e077ca98a78bab5809b809 100644 (file)
@@ -39,6 +39,8 @@ build_sources_library utf/private-dynamic.c utf/private-map.c utf/private-map_mu
 build_sources_headers utf.h
 build_sources_headers utf/common.h utf/convert.h utf/dynamic.h utf/is.h utf/is_character.h utf/map.h utf/map_multi.h utf/static.h utf/string.h utf/triple.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_buffer_decrement.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_buffer_decrement.3
new file mode 100644 (file)
index 0000000..4de26d2
--- /dev/null
@@ -0,0 +1,45 @@
+.TH f_utf_buffer_decrement "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_buffer_decrement
+.SH SYNOPSIS
+.nf
+.B #include <utf.h>
+.sp
+\fBf_status_t f_utf_buffer_decrement\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_string_range_t       *\fP\fIrange\fP,
+    \fBconst f_array_length_t  \fP\fIstep\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+A structure designating a start and stop range for some string.
+.PP
+In general, this project uses the start and stop position inclusively, meaning that a range of 0 to 1 would include positions 0 and position 1. Therefore, a range from 0 to 0 would be include position 0. Set start to some value larger than stop to designate that there is no range (such as start = 1, stop = 0).
+.PP
+start: the start position. stop: the stop position.
+.sp
+.RS
+.nf
+\fB
+struct f_string_range_t {
+  f_array_length_t \fIstart\fP;
+  f_array_length_t \fIstop\fP;
+};
+\fP
+.fi
+.RE
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_stop\fP if the stop range is reached before all steps are completed.
+.br
+\fBF_none_eos\fP if the end of buffer is reached before all steps are completed.
+.br
+\fBF_data_not\fP if buffer is empty or out of range.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_buffer_increment.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_buffer_increment.3
new file mode 100644 (file)
index 0000000..3484e69
--- /dev/null
@@ -0,0 +1,53 @@
+.TH f_utf_buffer_increment "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_buffer_increment
+.SH SYNOPSIS
+.nf
+.B #include <utf.h>
+.sp
+\fBf_status_t f_utf_buffer_increment\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_string_range_t       *\fP\fIrange\fP,
+    \fBconst f_array_length_t  \fP\fIstep\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Continue to the next character, based on step and character width.
+.PP
+For navigating a range within the given buffer by a specific number of characters that could be of any width allowed by UTF-8.
+.PP
+The start position must be at the start of a valid UTF-8 block.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to process.
+
+.TP
+.B range
+The start and stop positions to be incremented. The start position will be incremented by step.
+
+.TP
+.B step
+The number of steps to increment the start position. The steps refer to characters and not integers. Essentially this number is considered against the width of every character found. (For ASCII each step would be sizeof(uint8_t), which is 1. (For UTF-8 character of width 3, each step would be (3 * sizeof(uint8_t)).
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_stop\fP if the stop range is reached before all steps are completed.
+.br
+\fBF_none_eos\fP if the end of buffer is reached before all steps are completed.
+.br
+\fBF_data_not\fP if buffer is empty or out of range.
+.br
+\fBF_complete_not_utf_stop\fP (with error bit) if the stop range is reached before the complete UTF-8 character can be processed.
+.br
+\fBF_complete_not_utf_eos\fP (with error bit) if the end of buffer is reached before the complete UTF-8 character can be processed.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_char_to_char.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_char_to_char.3
new file mode 100644 (file)
index 0000000..7529987
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_utf_char_to_char "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_char_to_char
+.SH SYNOPSIS
+.nf
+.B #include <convert.h>
+.sp
+\fBf_status_t f_utf_char_to_char\fP(
+    \fBconst f_utf_char_t \fP\fIutf_character\fP,
+    \fBf_string_t        *\fP\fIcharacter\fP,
+    \fBf_array_length_t  *\fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert a specialized f_utf_char_t type to a uint8_t, stored as a string (character buffer).
+.PP
+This will also convert ASCII characters stored in the utf_character array. This will not resize character.
+.SH PARAMETERS
+.TP
+.B utf_character
+The UTF-8 character to convert from.
+
+.TP
+.B character
+A uint8_t representation of the UTF-8 character, stored as a string of width bytes. If width_max is 0, then this should be set to 0.
+
+.TP
+.B width_max
+This is set to the max number of bytes available. This is then updated to represent the max bytes used if enough space is available.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP if conversion was successful.
+.br
+\fBF_failure\fP (with error bit) if width is not long enough to convert.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_char_to_character.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_char_to_character.3
new file mode 100644 (file)
index 0000000..f47cb2d
--- /dev/null
@@ -0,0 +1,45 @@
+.TH f_utf_char_to_character "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_char_to_character
+.SH SYNOPSIS
+.nf
+.B #include <convert.h>
+.sp
+\fBf_status_t f_utf_char_to_character\fP(
+    \fBconst f_string_t       \fP\fIcharacter\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP,
+    \fBf_utf_char_t          *\fP\fIcharacter_utf\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert an ASCII or UTF-8 character, stored as a string (character buffer), to the specialized f_utf_char_t type.
+.SH PARAMETERS
+.TP
+.B character
+The character string to be converted to the f_utf_char_t type. There must be enough space allocated to convert against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for converting. Can be anything greater than 0.
+
+.TP
+.B character_utf
+The generated character of type f_utf_char_t. This value may be cleared, even on error.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP if conversion was successful.
+.br
+\fBF_failure\fP (with error bit) if width is not long enough to convert.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is.3
new file mode 100644 (file)
index 0000000..e7b6729
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_utf_character_is "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is a non-ASCII UTF-8 character.
+.PP
+This does not validate if the UTF-8 character is a valid UTF-8 character, for that use f_utf_character_is_valid().
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 character.
+.br
+\fBF_false\fP if not a UTF-8 character.
+.br
+\fBF_utf_fragment\fP if this is a UTF-8 character fragment.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_alphabetic.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_alphabetic.3
new file mode 100644 (file)
index 0000000..2e06976
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_utf_character_is_alphabetic "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_alphabetic
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_alphabetic\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 alphabet character.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 alphabet character.
+.br
+\fBF_false\fP if not a UTF-8 alphabet character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_alphabetic_digit.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_alphabetic_digit.3
new file mode 100644 (file)
index 0000000..c062b8d
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_utf_character_is_alphabetic_digit "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_alphabetic_digit
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_alphabetic_digit\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP,
+    \fBuint64_t *const    \fP\fIvalue\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 alphabet or digit character.
+.PP
+Digit characters are digit of any base, such as decimal (base-10) or hexidecimal (base-16).
+.PP
+This does not include fractions such as 1/2 (½) (U+00BD).
+.PP
+This also processes large values such as Roman Numerals. Roman Numerals, however, conflict with traditional alphabetic characters. To avoid this only Unicode Roman Numerals found in range U+2160 to U+2188 are treated as their respective digits. For example, the Roman Numeral 'â…¯' (U+216F) represents 1000 rather than having 'M' (U+004D) representing 1000.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.TP
+.B value
+(optional) The integer representation of the sequence if the sequence represents a decimal of any base type. Set to NULL to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 alphabetic-decimal character.
+.br
+\fBF_false\fP if not a UTF-8 alphabetic-decimal character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_alphabetic_numeric.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_alphabetic_numeric.3
new file mode 100644 (file)
index 0000000..650ca74
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_utf_character_is_alphabetic_numeric "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_alphabetic_numeric
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_alphabetic_numeric\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 alphabetic or numeric character.
+.PP
+Numeric characters are decimal digits, letter numbers, and number-like, such as 1/2 (½) (U+00BD) or superscript 2 (²) (U+00B2).
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 alpha-numeric character.
+.br
+\fBF_false\fP if not a UTF-8 alpha-numeric character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_ascii.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_ascii.3
new file mode 100644 (file)
index 0000000..9948517
--- /dev/null
@@ -0,0 +1,31 @@
+.TH f_utf_character_is_ascii "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_ascii
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_ascii\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII character.
+.PP
+This does not validate whether the UTF-8 character is valid or not.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if an ASCII character.
+.br
+\fBF_false\fP if not an ASCII character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_combining.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_combining.3
new file mode 100644 (file)
index 0000000..7802786
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_utf_character_is_combining "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_combining
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_combining\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is a UTF-8 combining character.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 combining character.
+.br
+\fBF_false\fP if not a UTF-8 combining character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_control.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_control.3
new file mode 100644 (file)
index 0000000..7c65505
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_utf_character_is_control "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_control
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_control\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 control character.
+.PP
+This includes control code and control format characters.
+.PP
+The control codes U+0009..U+000D and U+0085 are considered white space and line breaking.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 control character.
+.br
+\fBF_false\fP if not a UTF-8 control character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_control_code.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_control_code.3
new file mode 100644 (file)
index 0000000..368007c
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_utf_character_is_control_code "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_control_code
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_control_code\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 control code character.
+.PP
+Control Code characters are the traditional control characters, such as "\n" as well as some newer Unicode ones.
+.PP
+This does not include Control format characters.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 control code character.
+.br
+\fBF_false\fP if not a UTF-8 control code character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_control_format.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_control_format.3
new file mode 100644 (file)
index 0000000..45394cc
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_utf_character_is_control_format "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_control_format
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_control_format\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is a UTF-8 control format character.
+.PP
+Control Format characters are special characters used for formatting. These are considered control characters.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 control format character.
+.br
+\fBF_false\fP if not a UTF-8 control format character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_control_picture.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_control_picture.3
new file mode 100644 (file)
index 0000000..2f44713
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_utf_character_is_control_picture "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_control_picture
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_control_picture\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is a UTF-8 control picture character.
+.PP
+Control Picture characters are placeholders for special ASCII characters and therefore there are no ASCII Control Picture characters.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 control picture character.
+.br
+\fBF_false\fP if not a UTF-8 control picture character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_digit.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_digit.3
new file mode 100644 (file)
index 0000000..da47b9d
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_utf_character_is_digit "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_digit
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_digit\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP,
+    \fBuint64_t *const    \fP\fIvalue\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 digit character.
+.PP
+Digit characters are digit of any base, such as decimal (base-10) or hexidecimal (base-16).
+.PP
+This does not include fractions such as 1/2 (½) (U+00BD).
+.PP
+This also processes large values such as Roman Numerals. Roman Numerals, however, conflict with traditional alphabetic characters. To avoid this only Unicode Roman Numerals found in range U+2160 to U+2188 are treated as their respective digits. For example, the Roman Numeral 'â…¯' (U+216F) represents 1000 rather than having 'M' (U+004D) representing 1000.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.TP
+.B value
+(optional) The integer representation of the sequence if the sequence represents a decimal of any base type. Set to NULL to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 decimal character.
+.br
+\fBF_false\fP if not a UTF-8 decimal character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_emoji.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_emoji.3
new file mode 100644 (file)
index 0000000..33274fa
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_utf_character_is_emoji "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_emoji
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_emoji\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 emoji character.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 emoji character.
+.br
+\fBF_false\fP if not a UTF-8 emoji character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_fragment.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_fragment.3
new file mode 100644 (file)
index 0000000..e261782
--- /dev/null
@@ -0,0 +1,39 @@
+.TH f_utf_character_is_fragment "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_fragment
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_fragment\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is a 1-width UTF-8 character fragment.
+.PP
+Characters whose width is 1-byte are invalid. However, the character could have been cut-off, so whether or not this is actually valid should be determined by the caller.
+.PP
+For normal validation functions, try using f_utf_character_is() or f_utf_character_is_valid().
+.PP
+According to rfc3629, the valid octect sequences for UTF-8 are: UTF8-octets = *( UTF8-char ) UTF8-char = UTF8-1 / UTF8-2 / UTF8-3 / UTF8-4 UTF8-1 = x00-7F UTF8-2 = xC2-DF UTF8-tail UTF8-3 = xE0 xA0-BF UTF8-tail / xE1-EC 2( UTF8-tail ) / xED x80-9F UTF8-tail / xEE-EF 2( UTF8-tail ) UTF8-4 = xF0 x90-BF 2( UTF8-tail ) / xF1-F3 3( UTF8-tail ) / xF4 x80-8F 2( UTF8-tail ) UTF8-tail = x80-BF
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 character.
+.br
+\fBF_false\fP if not a UTF-8 character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_graph.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_graph.3
new file mode 100644 (file)
index 0000000..52ff0b6
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_utf_character_is_graph "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_graph
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_graph\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 printable character.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 graph.
+.br
+\fBF_false\fP if not a UTF-8 graph.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_numeric.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_numeric.3
new file mode 100644 (file)
index 0000000..61230cc
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_utf_character_is_numeric "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_numeric
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_numeric\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 numeric character.
+.PP
+Numeric characters are decimal digits, letter numbers, and number-like, such as 1/2 (½) or superscript 2 (²).
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 numeric character.
+.br
+\fBF_false\fP if not a UTF-8 numeric character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_phonetic.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_phonetic.3
new file mode 100644 (file)
index 0000000..bb69faa
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_utf_character_is_phonetic "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_phonetic
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_phonetic\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 phonetic character.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 phonetic character.
+.br
+\fBF_false\fP if not a UTF-8 phonetic character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_private.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_private.3
new file mode 100644 (file)
index 0000000..8451f7d
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_utf_character_is_private "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_private
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_private\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is a UTF-8 private character.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 private character.
+.br
+\fBF_false\fP if not a UTF-8 private character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_punctuation.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_punctuation.3
new file mode 100644 (file)
index 0000000..8c539ef
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_utf_character_is_punctuation "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_punctuation
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_punctuation\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 punctuation character.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 punctuation character.
+.br
+\fBF_false\fP if not a UTF-8 punctuation character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_subscript.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_subscript.3
new file mode 100644 (file)
index 0000000..8527088
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_utf_character_is_subscript "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_subscript
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_subscript\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is a UTF-8 subscript character.
+.PP
+This does not treat any combining character as a subscript.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 subscript character.
+.br
+\fBF_false\fP if not a UTF-8 subscript character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_superscript.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_superscript.3
new file mode 100644 (file)
index 0000000..4649785
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_utf_character_is_superscript "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_superscript
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_superscript\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is a UTF-8 superscript character.
+.PP
+This does not treat any combining character as a superscript.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 superscript character.
+.br
+\fBF_false\fP if not a UTF-8 superscript character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_symbol.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_symbol.3
new file mode 100644 (file)
index 0000000..ae1c7ec
--- /dev/null
@@ -0,0 +1,33 @@
+.TH f_utf_character_is_symbol "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_symbol
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_symbol\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 symbol character.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 symbol character.
+.br
+\fBF_false\fP if not a UTF-8 symbol character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_unassigned.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_unassigned.3
new file mode 100644 (file)
index 0000000..d9d1382
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_utf_character_is_unassigned "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_unassigned
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_unassigned\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is a unassigned (well-formed) UTF-8 character.
+.PP
+The Surrogates (which are not valid UTF-8) and Private Use are not considered unassigned.
+.PP
+This does validate if the UTF-8 character is a unassigned UTF-8 character. To not do this, use f_utf_character_is().
+.SH PARAMETERS
+.TP
+.B sequence
+The character to unassignedate.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 unassigned character.
+.br
+\fBF_false\fP if not a UTF-8 unassigned character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_valid.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_valid.3
new file mode 100644 (file)
index 0000000..78437c4
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_utf_character_is_valid "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_valid
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_valid\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is a valid (well-formed) UTF-8 character.
+.PP
+This does validate if the UTF-8 character is a valid UTF-8 character. To not do this, use f_utf_character_is().
+.PP
+ASCII character codes are considered valid by this function.
+.PP
+Codes U+FDD0 to U+FDEF and any character ending in FFFE or FFFF are non-characters, and are therefore invalid.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 character.
+.br
+\fBF_false\fP if not a UTF-8 character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_whitespace.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_whitespace.3
new file mode 100644 (file)
index 0000000..ddeb5b4
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_utf_character_is_whitespace "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_whitespace
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_whitespace\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP,
+    \fBconst bool         \fP\fIstrict\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 general space character.
+.PP
+Non-printing or zero-width characters are not considered white space. This does include line separators like '
+.PP
+' (U+000A). This does not include phonetic spaces, like white space modifiers. This does not include non-true white space characters, such as Ogham Space Mark ' ' (U+1680).
+.PP
+Phonetic spaces are whitespaces with additional phonetic meaning associated with them. However, because they are not renderred as white space, they are technically not white space.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.TP
+.B strict
+When TRUE, include all appropriate characters by type as per Unicode. When FALSE, non-white space characters that are treated as white space by Unicode are not treated as white space.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 white space.
+.br
+\fBF_false\fP if not a UTF-8 white space.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_whitespace_modifier.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_whitespace_modifier.3
new file mode 100644 (file)
index 0000000..0d6a8d7
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_utf_character_is_whitespace_modifier "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_whitespace_modifier
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_whitespace_modifier\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 white space modifier character.
+.PP
+These are phonetic spaces.
+.PP
+Phonetic spaces are whitespaces with additional phonetic meaning associated with them. Therefore, these are valid spaces in the technical sense, even if they are not visibly white space.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 (modifier) white space character.
+.br
+\fBF_false\fP if not a UTF-8 (modifier) white space character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_whitespace_other.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_whitespace_other.3
new file mode 100644 (file)
index 0000000..16a69e5
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_utf_character_is_whitespace_other "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_whitespace_other
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_whitespace_other\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an other type of UTF-8 space character.
+.PP
+This is a list of white space that are not actual white space (because they are graph characters) but are considered white space, such as Ogham Space Mark ' ' (U+1680).
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 (other) white space.
+.br
+\fBF_false\fP if not a UTF-8 (other) white space.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_whitespace_zero_width.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_whitespace_zero_width.3
new file mode 100644 (file)
index 0000000..ea178f5
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_utf_character_is_whitespace_zero_width "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_whitespace_zero_width
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_whitespace_zero_width\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an other type of UTF-8 space character.
+.PP
+This is a list of white space that are actually zero-width space (which is not a space), such as Zero-Width Space (U+200B).
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 (zero-width) white space.
+.br
+\fBF_false\fP if not a UTF-8 (zero-width) white space.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_wide.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_wide.3
new file mode 100644 (file)
index 0000000..26b83e4
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_utf_character_is_wide "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_wide
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_wide\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get whether or not the UTF-8 character is a wide character on display.
+.PP
+This is not the wide as in width in bytes that the codepoint takes up in UTF-8. Instead, this is the width in characters on the screen the character takes up. When "wide" characters that take up either 2 characters on render. When "narrow" characters that take up either 1 character on render.
+.SH PARAMETERS
+.TP
+.B sequence
+The (UTF-8) character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 wide character.
+.br
+\fBF_false\fP if not a UTF-8 wide character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_word.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_word.3
new file mode 100644 (file)
index 0000000..f0b51ae
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_character_is_word "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_word
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_word\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP,
+    \fBconst bool         \fP\fIstrict\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 word character.
+.PP
+A word character is alpha-numeric or an underscore '_'.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.TP
+.B strict
+When TRUE, include all appropriate characters by type as per Unicode. When FALSE, non-inline punctuation connectors are not considered a character (such as U+FE33 '︳'). When FALSE, zero-width punctuation characters are not considered a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 word character.
+.br
+\fBF_false\fP if not a UTF-8 word character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_word_dash.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_word_dash.3
new file mode 100644 (file)
index 0000000..f60a8ba
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_character_is_word_dash "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_word_dash
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_word_dash\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP,
+    \fBconst bool         \fP\fIstrict\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 word or dash character.
+.PP
+A word dash character is alpha-numeric, an underscore '_' or a dash '-'.
+.PP
+Unicode appears to refer to dashes that connect words as a hyphen. Therefore, only these hyphens are considered dashes for the purposes of this function. All other dash-like Unicode characters are not considered a dash here. The dash here is intended for combining words, which matches the context of the Unicode "hyphen".
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.TP
+.B strict
+When TRUE, include all appropriate characters by type as per Unicode. When FALSE, non-inline punctuation connectors are not considered a character (such as U+FE33 '︳'). When FALSE, zero-width punctuation characters are not considered a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 word or dash character.
+.br
+\fBF_false\fP if not a UTF-8 word or dash character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_word_dash_plus.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_word_dash_plus.3
new file mode 100644 (file)
index 0000000..84eb525
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_utf_character_is_word_dash_plus "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_word_dash_plus
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_word_dash_plus\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP,
+    \fBconst bool         \fP\fIstrict\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 word, dash, or plus character.
+.PP
+A word dash plus character is alphabetic-decimal, an underscore '_', a dash '-', or a plus '+'.
+.PP
+Unicode appears to refer to dashes that connect words as a hyphen. Therefore, only these hyphens are considered dashes for the purposes of this function. All other dash-like Unicode characters are not considered a dash here. The dash here is intended for combining words, which matches the context of the Unicode "hyphen".
+.PP
+This does not include zero-width punctuation, such as "invisible plus" (U+2064) (even in strict mode).
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.TP
+.B strict
+When TRUE, include all appropriate characters by type as per Unicode. When FALSE, non-inline punctuation connectors are not considered a character (such as U+FE33 '︳'). When FALSE, zero-width punctuation characters are not considered a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 word or dash character.
+.br
+\fBF_false\fP if not a UTF-8 word or dash character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_zero_width.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_is_zero_width.3
new file mode 100644 (file)
index 0000000..de4628e
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_utf_character_is_zero_width "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_is_zero_width
+.SH SYNOPSIS
+.nf
+.B #include <is_character.h>
+.sp
+\fBf_status_t f_utf_character_is_zero_width\fP(
+    \fBconst f_utf_char_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 general non-printing character.
+.PP
+Only characters that do not print, which are generally called zero-width.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 non-printing or zero-width character.
+.br
+\fBF_false\fP if not a UTF-8 non-printing or zero-width character.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_unicode_from.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_unicode_from.3
new file mode 100644 (file)
index 0000000..c31800c
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_character_unicode_from "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_unicode_from
+.SH SYNOPSIS
+.nf
+.B #include <convert.h>
+.sp
+\fBf_status_t f_utf_character_unicode_from\fP(
+    \fBconst uint32_t \fP\fIunicode\fP,
+    \fBf_utf_char_t  *\fP\fIcharacter\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert a given Unicode into (UTF-8) character.
+.PP
+The f_utf_char_t is a 32-bit integer containing UTF-8 sequences, unchanged. The Unicode is a 32-bit integer representing the Unicode (such as U+0001). The Unciode does not need to be interpretted like UTF-8, it simple is a sequence of number from 0 onto max supported Unicode integer value (U+10FFFF).
+.SH PARAMETERS
+.TP
+.B unicode
+The Unicode number.
+
+.TP
+.B character
+The (UTF-8) character.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_unicode_string_to.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_unicode_string_to.3
new file mode 100644 (file)
index 0000000..975ed7f
--- /dev/null
@@ -0,0 +1,45 @@
+.TH f_utf_character_unicode_string_to "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_unicode_string_to
+.SH SYNOPSIS
+.nf
+.B #include <convert.h>
+.sp
+\fBf_status_t f_utf_character_unicode_string_to\fP(
+    \fBconst f_utf_string_t   \fP\fIstring\fP,
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBf_utf_char_t          *\fP\fIcodepoint\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert a string of the format "U+FFFF" into the codepoint value.
+.PP
+This ignores NULL characters. The string may only contain "U+" followed by a hexidecimal digit, upper or lower case. The "U+" prefix is optional. Only ASCII characters are allowed to represent the Unicode sequence string.
+.SH PARAMETERS
+.TP
+.B string
+The string representing a Unicode sequence.
+
+.TP
+.B length
+The maximum number of characters.
+
+.TP
+.B codepoint
+A 32-bit integer representing the Unicode (such as U+0001). Does not need to be interpretted like UTF-8, this is a number from 0 onto max supported Unicode integer value (U+10FFFF).
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_failure\fP (with error bit) if width_max is not long enough to convert.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_valid_not\fP (with error bit) if string is not a valid Unicode string.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_character_unicode_to.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_character_unicode_to.3
new file mode 100644 (file)
index 0000000..6753a86
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_character_unicode_to "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_character_unicode_to
+.SH SYNOPSIS
+.nf
+.B #include <convert.h>
+.sp
+\fBf_status_t f_utf_character_unicode_to\fP(
+    \fBconst f_utf_char_t \fP\fIcharacter\fP,
+    \fBuint32_t          *\fP\fIunicode\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert a given (UTF-8) character into Unicode.
+.PP
+The f_utf_char_t is a 32-bit integer containing UTF-8 sequences, unchanged. The Unicode is a 32-bit integer representing the Unicode (such as U+0001). The Unciode does not need to be interpretted like UTF-8, it simple is a sequence of number from 0 onto max supported Unicode integer value (U+10FFFF).
+.SH PARAMETERS
+.TP
+.B character
+The (UTF-8) character.
+
+.TP
+.B unicode
+The Unicode number.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is.3
new file mode 100644 (file)
index 0000000..adc65f9
--- /dev/null
@@ -0,0 +1,31 @@
+.TH f_utf_is "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is\fP(
+    \fBconst f_string_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is a non-ASCII UTF-8 character.
+.PP
+This does not check the validity of the character, for that instead use f_utf_is_valid().
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 character.
+.br
+\fBF_false\fP if not a UTF-8 character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_alphabetic.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_alphabetic.3
new file mode 100644 (file)
index 0000000..d5d8098
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_is_alphabetic "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_alphabetic
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_alphabetic\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 alphabet character.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 alphabet character.
+.br
+\fBF_false\fP if not a UTF-8 alphabet character.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_alphabetic_digit.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_alphabetic_digit.3
new file mode 100644 (file)
index 0000000..0bfb3f4
--- /dev/null
@@ -0,0 +1,51 @@
+.TH f_utf_is_alphabetic_digit "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_alphabetic_digit
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_alphabetic_digit\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP,
+    \fBuint64_t *const        \fP\fIvalue\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 alphabet or digit character.
+.PP
+Digit characters are digit of any base, such as decimal (base-10) or hexidecimal (base-16).
+.PP
+This does not include fractions such as 1/2 (½) (U+00BD).
+.PP
+This also processes large values such as Roman Numerals. Roman Numerals, however, conflict with traditional alphabetic characters. To avoid this only Unicode Roman Numerals found in range U+2160 to U+2188 are treated as their respective digits. For example, the Roman Numeral 'â…¯' (U+216F) represents 1000 rather than having 'M' (U+004D) representing 1000.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.TP
+.B value
+(optional) The integer representation of the sequence if the sequence represents a decimal of any base type. Set to NULL to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 alphabet character.
+.br
+\fBF_false\fP if not a UTF-8 alpha-numeric character.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_alphabetic_numeric.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_alphabetic_numeric.3
new file mode 100644 (file)
index 0000000..de41380
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_is_alphabetic_numeric "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_alphabetic_numeric
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_alphabetic_numeric\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 alphabetic or numeric character.
+.PP
+Numeric characters are decimal digits, letter numbers, and number-like, such as 1/2 (½) (U+00BD) or superscript 2 (²) (U+00B2).
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 alphabet character.
+.br
+\fBF_false\fP if not a UTF-8 alpha-numeric character.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_ascii.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_ascii.3
new file mode 100644 (file)
index 0000000..1433fca
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_is_ascii "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_ascii
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_ascii\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII character.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if an ASCII character.
+.br
+\fBF_false\fP if not an ASCII character.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_combining.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_combining.3
new file mode 100644 (file)
index 0000000..c0791c3
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_is_combining "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_combining
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_combining\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is a UTF-8 combining character.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 combining character.
+.br
+\fBF_false\fP if not a UTF-8 combining character.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_control.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_control.3
new file mode 100644 (file)
index 0000000..623fa4e
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_is_control "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_control
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_control\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 control character.
+.PP
+This includes control code and control format characters.
+.PP
+The control codes U+0009..U+000D and U+0085 are considered white space and line breaking.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 control character.
+.br
+\fBF_false\fP if not a UTF-8 control character.\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_control_code.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_control_code.3
new file mode 100644 (file)
index 0000000..5e22817
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_is_control_code "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_control_code
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_control_code\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is a UTF-8 control code character.
+.PP
+Control Code characters are the traditional control characters, such as "\n" as well as some newer Unicode ones.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 control code character.
+.br
+\fBF_false\fP if not a UTF-8 control code character.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_control_format.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_control_format.3
new file mode 100644 (file)
index 0000000..61d3681
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_is_control_format "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_control_format
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_control_format\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is a UTF-8 control format character.
+.PP
+Control Format characters are special characters used for formatting. These are considered control characters.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 control format character.
+.br
+\fBF_false\fP if not a UTF-8 control format character.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_control_picture.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_control_picture.3
new file mode 100644 (file)
index 0000000..60c3e93
--- /dev/null
@@ -0,0 +1,46 @@
+.TH f_utf_is_control_picture "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_control_picture
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_control_picture\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is a UTF-8 control picture character.
+.PP
+Control Picture characters are placeholders for special ASCII characters and therefore there are no ASCII Control Picture characters.
+.PP
+
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.SH RETURN VALUE
+.PP
+
+.br
+\fBF_true\fP if a UTF-8 control picture character.
+.br
+\fBF_false\fP if not a UTF-8 control picture character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_digit.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_digit.3
new file mode 100644 (file)
index 0000000..9595a4a
--- /dev/null
@@ -0,0 +1,51 @@
+.TH f_utf_is_digit "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_digit
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_digit\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP,
+    \fBuint64_t *const        \fP\fIvalue\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 decimal character.
+.PP
+Digit characters are digit of any base, such as decimal (base-10) or hexidecimal (base-16).
+.PP
+This does not include fractions such as 1/2 (½) (U+00BD).
+.PP
+This also processes large values such as Roman Numerals. Roman Numerals, however, conflict with traditional alphabetic characters. To avoid this only Unicode Roman Numerals found in range U+2160 to U+2188 are treated as their respective digits. For example, the Roman Numeral 'â…¯' (U+216F) represents 1000 rather than having 'M' (U+004D) representing 1000.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.TP
+.B value
+(optional) The integer representation of the sequence if the sequence represents a decimal of any base type. Set to NULL to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 digit character.
+.br
+\fBF_false\fP if not a UTF-8 digit character.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_emoji.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_emoji.3
new file mode 100644 (file)
index 0000000..7ae0858
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_is_emoji "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_emoji
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_emoji\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 emoji character.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 emoji character.
+.br
+\fBF_false\fP if not a UTF-8 emoji character.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_fragment.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_fragment.3
new file mode 100644 (file)
index 0000000..459e8c4
--- /dev/null
@@ -0,0 +1,35 @@
+.TH f_utf_is_fragment "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_fragment
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_fragment\fP(
+    \fBconst f_string_t \fP\fIsequence\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is a 1-width UTF-8 character fragment.
+.PP
+Characters whose width is 1-byte are invalid. However, the character could have been cut-off, so whether or not this is actually valid should be determined by the caller.
+.PP
+For normal validation functions, try using f_utf_character_is() or f_utf_character_is_valid().
+.PP
+According to rfc3629, the valid octect sequences for UTF-8 are: UTF8-octets = *( UTF8-char ) UTF8-char = UTF8-1 / UTF8-2 / UTF8-3 / UTF8-4 UTF8-1 = x00-7F UTF8-2 = xC2-DF UTF8-tail UTF8-3 = xE0 xA0-BF UTF8-tail / xE1-EC 2( UTF8-tail ) / xED x80-9F UTF8-tail / xEE-EF 2( UTF8-tail ) UTF8-4 = xF0 x90-BF 2( UTF8-tail ) / xF1-F3 3( UTF8-tail ) / xF4 x80-8F 2( UTF8-tail ) UTF8-tail = x80-BF
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 character.
+.br
+\fBF_false\fP if not a UTF-8 character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_graph.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_graph.3
new file mode 100644 (file)
index 0000000..16898f8
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_utf_is_graph "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_graph
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_graph\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 printable character.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 graph.
+.br
+\fBF_false\fP if not a UTF-8 graph.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_maybe\fP (with error bit) if this could be a graph but width is not long enough.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_numeric.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_numeric.3
new file mode 100644 (file)
index 0000000..9c80c85
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_is_numeric "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_numeric
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_numeric\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 numeric character.
+.PP
+Numeric characters are decimal digits, letter numbers, and number-like, such as 1/2 (½) or superscript 2 (²).
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 numeric character.
+.br
+\fBF_false\fP if not a UTF-8 numeric character.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_phonetic.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_phonetic.3
new file mode 100644 (file)
index 0000000..1f8c608
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_is_phonetic "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_phonetic
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_phonetic\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 phonetic character.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 phonetic character.
+.br
+\fBF_false\fP if not a UTF-8 phonetic character.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_private.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_private.3
new file mode 100644 (file)
index 0000000..600bab1
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_is_private "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_private
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_private\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is a UTF-8 private character.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 punctuation character.
+.br
+\fBF_false\fP if not a UTF-8 punctuation character.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_punctuation.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_punctuation.3
new file mode 100644 (file)
index 0000000..8eb3e81
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_is_punctuation "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_punctuation
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_punctuation\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 punctuation character.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 punctuation character.
+.br
+\fBF_false\fP if not a UTF-8 punctuation character.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_subscript.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_subscript.3
new file mode 100644 (file)
index 0000000..ce4fcbf
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_is_subscript "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_subscript
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_subscript\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 subscript character.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 subscript character.
+.br
+\fBF_false\fP if not a UTF-8 subscript character.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_superscript.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_superscript.3
new file mode 100644 (file)
index 0000000..347ca5e
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_is_superscript "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_superscript
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_superscript\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 superscript character.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 superscript character.
+.br
+\fBF_false\fP if not a UTF-8 superscript character.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_symbol.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_symbol.3
new file mode 100644 (file)
index 0000000..b83bbb3
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_is_symbol "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_symbol
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_symbol\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 symbol character.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 symbol character.
+.br
+\fBF_false\fP if not a UTF-8 symbol character.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_unassigned.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_unassigned.3
new file mode 100644 (file)
index 0000000..1604f70
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_is_unassigned "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_unassigned
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_unassigned\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is a unassigned UTF-8 character.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if an unassigned UTF-8 character.
+.br
+\fBF_false\fP if not an unassigned UTF-8 character.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is unassigned.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_valid.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_valid.3
new file mode 100644 (file)
index 0000000..dc37d82
--- /dev/null
@@ -0,0 +1,48 @@
+.TH f_utf_is_valid "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_valid
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_valid\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is a valid (well-formed) UTF-8 character.
+.PP
+This does validate if the UTF-8 character is a valid UTF-8 character. To not do this, use f_utf_is().
+.PP
+Valid ASCII character codes are considered valid by this function.
+.PP
+Codes U+FDD0 to U+FDEF and any character ending in FFFE or FFFF are non-characters, and are therefore invalid.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a valid UTF-8 character or is an ASCII character.
+.br
+\fBF_false\fP if not a valid UTF-8 character.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_failure\fP (with error bit) if width_max is not long enough to convert.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_whitespace.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_whitespace.3
new file mode 100644 (file)
index 0000000..acd0ba0
--- /dev/null
@@ -0,0 +1,55 @@
+.TH f_utf_is_whitespace "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_whitespace
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_whitespace\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP,
+    \fBconst bool             \fP\fIstrict\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 general space character.
+.PP
+Non-printing or zero-width characters are not considered white space. This does include line separators like '
+.PP
+' (U+000A). This does not include phonetic spaces, like white space modifiers. This does not include non-true white space characters, such as Ogham Space Mark ' ' (U+1680).
+.PP
+Phonetic spaces are white spaces with additional phonetic meaning associated with them. However, because they are not renderred as white space, they are technically not white space.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.TP
+.B strict
+When TRUE, include all appropriate characters by type as per Unicode. When FALSE, non-white space characters that are treated as white space by Unicode are not treated as white space.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 white space.
+.br
+\fBF_false\fP if not a UTF-8 white space.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_maybe\fP (with error bit) if this could be a white space but width is not long enough.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_whitespace_modifier.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_whitespace_modifier.3
new file mode 100644 (file)
index 0000000..0978fb1
--- /dev/null
@@ -0,0 +1,48 @@
+.TH f_utf_is_whitespace_modifier "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_whitespace_modifier
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_whitespace_modifier\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is a UTF-8 white space modifier character.
+.PP
+These are phonetic spaces.
+.PP
+Phonetic spaces are whitespaces with additional phonetic meaning associated with them. Therefore, these are valid spaces in the technical sense, even if they are not visibly white space.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 (modifier) white space.
+.br
+\fBF_false\fP if not a UTF-8 (modifier) white space.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_maybe\fP (with error bit) if this could be a white space but width is not long enough.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_whitespace_other.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_whitespace_other.3
new file mode 100644 (file)
index 0000000..f649e05
--- /dev/null
@@ -0,0 +1,46 @@
+.TH f_utf_is_whitespace_other "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_whitespace_other
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_whitespace_other\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an other type of UTF-8 space character.
+.PP
+This is a list of white space that are not actual white space (because they are graph characters) but are considered white space, such as Ogham Space Mark ' ' (U+1680).
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 (other) white space.
+.br
+\fBF_false\fP if not a UTF-8 (other) white space.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_maybe\fP (with error bit) if this could be a white space but width is not long enough.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_whitespace_zero_width.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_whitespace_zero_width.3
new file mode 100644 (file)
index 0000000..ed6b96a
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_utf_is_whitespace_zero_width "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_whitespace_zero_width
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_whitespace_zero_width\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an other type of UTF-8 space character.
+.PP
+This is a list of white space that are actually zero-width space (which is not a space), such as Zero-Width Space (U+200B).
+.PP
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 (zero-width) white space.
+.br
+\fBF_false\fP if not a UTF-8 (zero-width) white space.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_maybe\fP (with error bit) if this could be a white space but width is not long enough.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_wide.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_wide.3
new file mode 100644 (file)
index 0000000..c333116
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_is_wide "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_wide
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_wide\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Get whether or not the UTF-8 character is a wide character on display.
+.PP
+This is not the wide as in width in bytes that the codepoint takes up in UTF-8. Instead, this is the width in characters on the screen the character takes up. When "wide" characters that take up either 2 characters on render. When "narrow" characters that take up either 1 character on render.
+.SH PARAMETERS
+.TP
+.B sequence
+The (UTF-8) character.
+
+.TP
+.B width_max
+The max width available for representing the UTF-8 character. There must be enough space in the character buffer to handle the Unicode width. It is recommended to always have 4 characters (4 uint8_t) of space available in character. This is the width in bytes the codepoint takes up in UTF-8.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_word.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_word.3
new file mode 100644 (file)
index 0000000..d3ac21d
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_utf_is_word "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_word
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_word\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP,
+    \fBconst bool             \fP\fIstrict\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 word character.
+.PP
+A word character is alphabetic-decimal or an underscore '_'.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.TP
+.B strict
+When TRUE, include all appropriate characters by type as per Unicode. When FALSE, non-inline punctuation connectors are not considered a character (such as U+FE33 '︳'). When FALSE, zero-width punctuation characters are not considered a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 word character.
+.br
+\fBF_false\fP if not a UTF-8 word character.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_word_dash.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_word_dash.3
new file mode 100644 (file)
index 0000000..ea72133
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_utf_is_word_dash "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_word_dash
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_word_dash\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP,
+    \fBconst bool             \fP\fIstrict\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 word or dash character.
+.PP
+A word dash character is alphabetic-decimal, an underscore '_' or a dash '-'.
+.PP
+Unicode appears to refer to dashes that connect words as a hyphen. Therefore, only these hyphens are considered dashes for the purposes of this function. All other dash-like Unicode characters are not considered a dash here. The dash here is intended for combining words, which matches the context of the Unicode "hyphen".
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.TP
+.B strict
+When TRUE, include all appropriate characters by type as per Unicode. When FALSE, non-inline punctuation connectors are not considered a character (such as U+FE33 '︳'). When FALSE, zero-width punctuation characters are not considered a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 word or dash character.
+.br
+\fBF_false\fP if not a UTF-8 word or dash character.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_word_dash_plus.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_word_dash_plus.3
new file mode 100644 (file)
index 0000000..1ca770d
--- /dev/null
@@ -0,0 +1,51 @@
+.TH f_utf_is_word_dash_plus "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_word_dash_plus
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_word_dash_plus\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP,
+    \fBconst bool             \fP\fIstrict\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 word, dash, or plus character.
+.PP
+A word dash plus character is alphabetic-decimal, an underscore '_', a dash '-', or a plus '+'.
+.PP
+Unicode appears to refer to dashes that connect words as a hyphen. Therefore, only these hyphens are considered dashes for the purposes of this function. All other dash-like Unicode characters are not considered a dash here. The dash here is intended for combining words, which matches the context of the Unicode "hyphen".
+.PP
+This does not include zero-width punctuation, such as "invisible plus" (U+2064) (even in strict mode).
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.TP
+.B strict
+When TRUE, include all appropriate characters by type as per Unicode. When FALSE, non-inline punctuation connectors are not considered a character (such as U+FE33 '︳'). When FALSE, zero-width punctuation characters are not considered a character.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 word or dash character.
+.br
+\fBF_false\fP if not a UTF-8 word or dash character.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_is_zero_width.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_is_zero_width.3
new file mode 100644 (file)
index 0000000..7664ba5
--- /dev/null
@@ -0,0 +1,46 @@
+.TH f_utf_is_zero_width "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_is_zero_width
+.SH SYNOPSIS
+.nf
+.B #include <is.h>
+.sp
+\fBf_status_t f_utf_is_zero_width\fP(
+    \fBconst f_string_t       \fP\fIsequence\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if the entire byte block of the character is an ASCII or UTF-8 general non-printing character.
+.PP
+Only characters that do not print, which are generally called zero-width.
+.SH PARAMETERS
+.TP
+.B sequence
+The byte sequence to validate as a character. There must be enough space allocated to compare against, as limited by width_max.
+
+.TP
+.B width_max
+The maximum width available for checking. Can be anything greater than 0.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP if a UTF-8 white space.
+.br
+\fBF_false\fP if not a UTF-8 white space.
+.br
+\fBF_complete_not_utf\fP (with error bit set) if character is an incomplete UTF-8 sequence.
+.br
+\fBF_maybe\fP (with error bit) if this could be a white space but width is not long enough.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if Unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_append.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_append.3
new file mode 100644 (file)
index 0000000..100b236
--- /dev/null
@@ -0,0 +1,45 @@
+.TH f_utf_string_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_append
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_utf_string_append\fP(
+    \fBconst f_utf_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t        \fP\fIlength\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The destination string the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_append_assure.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_append_assure.3
new file mode 100644 (file)
index 0000000..11246ce
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_utf_string_append_assure "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_append_assure
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_utf_string_append_assure\fP(
+    \fBconst f_utf_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t        \fP\fIlength\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination only if the string is not already at the end.
+.PP
+This ignores NULL characters when comparing both the source and the destination.
+.PP
+Errors (with error bit) from: f_memory_resize().
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The destination string the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_append_assure_nulless.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_append_assure_nulless.3
new file mode 100644 (file)
index 0000000..b60fbc8
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_utf_string_append_assure_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_append_assure_nulless
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_utf_string_append_assure_nulless\fP(
+    \fBconst f_utf_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t        \fP\fIlength\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination only if the string is not already at the end.
+.PP
+This ignores NULL characters when comparing both the source and the destination. Skips over NULL characters from source when appending.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The destination string the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_append_nulless.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_append_nulless.3
new file mode 100644 (file)
index 0000000..32b8dfc
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_utf_string_append_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_append_nulless
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_utf_string_append_nulless\fP(
+    \fBconst f_utf_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t        \fP\fIlength\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination.
+.PP
+Skips over NULL characters from source when appending.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The destination string the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_adjust.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_adjust.3
new file mode 100644 (file)
index 0000000..e309487
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_utf_string_dynamic_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_adjust
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_adjust\fP(
+    \fBconst f_array_length_t        \fP\fIlength\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdynamic\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamic string.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B dynamic
+The string to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_append.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_append.3
new file mode 100644 (file)
index 0000000..c152018
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_dynamic_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_append
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_append\fP(
+    \fBconst f_utf_string_dynamic_t  \fP\fIsource\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B destination
+The destination string the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_append_assure.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_append_assure.3
new file mode 100644 (file)
index 0000000..4340771
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_dynamic_append_assure "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_append_assure
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_append_assure\fP(
+    \fBconst f_utf_string_static_t   \fP\fIsource\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination only if the string is not already at the end.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B destination
+The destination string the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_append_assure_nulless.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_append_assure_nulless.3
new file mode 100644 (file)
index 0000000..f23c163
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_string_dynamic_append_assure_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_append_assure_nulless
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_append_assure_nulless\fP(
+    \fBconst f_utf_string_static_t   \fP\fIsource\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination only if the string is not already at the end.
+.PP
+Skips over NULL characters from source when appending.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B destination
+The destination string the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_append_nulless.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_append_nulless.3
new file mode 100644 (file)
index 0000000..46ee16a
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_string_dynamic_append_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_append_nulless
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_append_nulless\fP(
+    \fBconst f_utf_string_static_t   \fP\fIsource\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination.
+.PP
+Skips over NULL characters from source when appending.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B destination
+The destination string the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_decimate_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_decimate_by.3
new file mode 100644 (file)
index 0000000..299bc68
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_string_dynamic_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_decimate_by\fP(
+    \fBconst f_array_length_t        \fP\fIamount\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdynamic\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamic string to a smaller size.
+.PP
+This will resize making the string smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B dynamic
+The string to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_decrease_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_decrease_by.3
new file mode 100644 (file)
index 0000000..44b0cc0
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_string_dynamic_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_decrease_by\fP(
+    \fBconst f_array_length_t        \fP\fIamount\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdynamic\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamic string to a smaller size.
+.PP
+This will resize making the string smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B dynamic
+The string to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_increase.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_increase.3
new file mode 100644 (file)
index 0000000..1164fd3
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_string_dynamic_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_increase
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_increase\fP(
+    \fBconst f_array_length_t        \fP\fIstep\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdynamic\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamic string to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B dynamic
+The string to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size) (or step is 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_increase_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_increase_by.3
new file mode 100644 (file)
index 0000000..867392c
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_string_dynamic_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_increase_by\fP(
+    \fBconst f_array_length_t        \fP\fIamount\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdynamic\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamic string to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B dynamic
+The string to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_mash.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_mash.3
new file mode 100644 (file)
index 0000000..c583072
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_utf_string_dynamic_mash "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_mash
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_mash\fP(
+    \fBconst f_utf_string_static_t   \fP\fIglue\fP,
+    \fBconst f_utf_string_static_t   \fP\fIsource\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination with the glue in between.
+.PP
+If the destination string is empty, then no glue is appended.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B source
+The source string to append.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_mash_nulless.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_mash_nulless.3
new file mode 100644 (file)
index 0000000..55a2a8a
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_utf_string_dynamic_mash_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_mash_nulless
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_mash_nulless\fP(
+    \fBconst f_utf_string_static_t   \fP\fIglue\fP,
+    \fBconst f_utf_string_static_t   \fP\fIsource\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination with the glue in between.
+.PP
+If the destination string is empty, then no glue is appended.
+.PP
+Skips over NULL characters from glue and source when appending.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B source
+The source string to append.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_mish.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_mish.3
new file mode 100644 (file)
index 0000000..593539c
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_utf_string_dynamic_mish "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_mish
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_mish\fP(
+    \fBconst f_utf_string_static_t   \fP\fIglue\fP,
+    \fBconst f_utf_string_static_t   \fP\fIsource\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination with the glue in between.
+.PP
+If the destination string is empty, then no glue is appended.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B source
+The source string to append.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_mish_nulless.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_mish_nulless.3
new file mode 100644 (file)
index 0000000..48b6345
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_utf_string_dynamic_mish_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_mish_nulless
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_mish_nulless\fP(
+    \fBconst f_utf_string_static_t   \fP\fIglue\fP,
+    \fBconst f_utf_string_static_t   \fP\fIsource\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination with the glue in between.
+.PP
+If the destination string is empty, then no glue is appended.
+.PP
+Skips over NULL characters from glue and source when appending.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B source
+The source string to append.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_append.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_append.3
new file mode 100644 (file)
index 0000000..b972158
--- /dev/null
@@ -0,0 +1,51 @@
+.TH f_utf_string_dynamic_partial_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_partial_append
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_partial_append\fP(
+    \fBconst f_utf_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t        \fP\fIrange\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination, but restricted to the given range.
+.PP
+If range.stop is on or after source.used, then source.used - 1 is used as the stopping point.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B range
+A range within the source to restrict the copy from.
+
+.TP
+.B destination
+The destination string the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_eos\fP if range.start >= source.used.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_append_assure.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_append_assure.3
new file mode 100644 (file)
index 0000000..4cd1f42
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_utf_string_dynamic_partial_append_assure "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_partial_append_assure
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_partial_append_assure\fP(
+    \fBconst f_utf_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t        \fP\fIrange\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination only if the string is not already at the end and restricted to the given range.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B range
+A range within the source to restrict the copy from.
+
+.TP
+.B destination
+The destination string the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_eos\fP if range.start >= source.used.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_append_assure_nulless.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_append_assure_nulless.3
new file mode 100644 (file)
index 0000000..85cca2a
--- /dev/null
@@ -0,0 +1,53 @@
+.TH f_utf_string_dynamic_partial_append_assure_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_partial_append_assure_nulless
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_partial_append_assure_nulless\fP(
+    \fBconst f_utf_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t        \fP\fIrange\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination only if the string is not already at the end and restricted to the given range.
+.PP
+This ignores NULL characters when comparing both the source and the destination.
+.PP
+Skips over NULL characters from source when appending.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B range
+A range within the source to restrict the copy from.
+
+.TP
+.B destination
+The destination string the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_eos\fP if range.start >= source.used.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_append_nulless.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_append_nulless.3
new file mode 100644 (file)
index 0000000..83da5ee
--- /dev/null
@@ -0,0 +1,51 @@
+.TH f_utf_string_dynamic_partial_append_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_partial_append_nulless
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_partial_append_nulless\fP(
+    \fBconst f_utf_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t        \fP\fIrange\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination, but restricted to the given range.
+.PP
+Skips over NULL characters from source when appending.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B range
+A range within the source to restrict the copy from.
+
+.TP
+.B destination
+The destination string the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_eos\fP if range.start >= source.used.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_mash.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_mash.3
new file mode 100644 (file)
index 0000000..6502d5d
--- /dev/null
@@ -0,0 +1,56 @@
+.TH f_utf_string_dynamic_partial_mash "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_partial_mash
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_partial_mash\fP(
+    \fBconst f_utf_string_static_t   \fP\fIglue\fP,
+    \fBconst f_utf_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t        \fP\fIrange\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination with the glue in between, but restricted to the given range.
+.PP
+If the destination string is empty, then no glue is appended.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B source
+The source string to append.
+
+.TP
+.B range
+A range within the source to restrict the copy from.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_eos\fP if range.start >= source.used.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_mash_nulless.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_mash_nulless.3
new file mode 100644 (file)
index 0000000..d5a0b81
--- /dev/null
@@ -0,0 +1,58 @@
+.TH f_utf_string_dynamic_partial_mash_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_partial_mash_nulless
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_partial_mash_nulless\fP(
+    \fBconst f_utf_string_static_t   \fP\fIglue\fP,
+    \fBconst f_utf_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t        \fP\fIrange\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination with the glue in between, but restricted to the given range.
+.PP
+If the destination string is empty, then no glue is appended.
+.PP
+Skips over NULL characters from glue and source when appending.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B source
+The source string to append.
+
+.TP
+.B range
+A range within the source to restrict the copy from.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_eos\fP if range.start >= source.used.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_mish.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_mish.3
new file mode 100644 (file)
index 0000000..d4a19b8
--- /dev/null
@@ -0,0 +1,56 @@
+.TH f_utf_string_dynamic_partial_mish "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_partial_mish
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_partial_mish\fP(
+    \fBconst f_utf_string_static_t   \fP\fIglue\fP,
+    \fBconst f_utf_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t        \fP\fIrange\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination with the glue in between, but restricted to the given range.
+.PP
+If the destination string is empty, then no glue is appended.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B source
+The source string to append.
+
+.TP
+.B range
+A range within the source to restrict the copy from.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_eos\fP if range.start >= source.used.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_mish_nulless.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_mish_nulless.3
new file mode 100644 (file)
index 0000000..f819e81
--- /dev/null
@@ -0,0 +1,58 @@
+.TH f_utf_string_dynamic_partial_mish_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_partial_mish_nulless
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_partial_mish_nulless\fP(
+    \fBconst f_utf_string_static_t   \fP\fIglue\fP,
+    \fBconst f_utf_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t        \fP\fIrange\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination with the glue in between, but restricted to the given range.
+.PP
+If the destination string is empty, then no glue is appended.
+.PP
+Skips over NULL characters from glue and source when appending.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B source
+The source string to append.
+
+.TP
+.B range
+A range within the source to restrict the copy from.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_eos\fP if range.start >= source.used.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_prepend.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_prepend.3
new file mode 100644 (file)
index 0000000..eedcec4
--- /dev/null
@@ -0,0 +1,51 @@
+.TH f_utf_string_dynamic_partial_prepend "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_partial_prepend
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_partial_prepend\fP(
+    \fBconst f_utf_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t        \fP\fIrange\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination, but restricted to the given range.
+.PP
+Prepend operations require memory move operations and are therefore likely more expensive than append operations.
+.SH PARAMETERS
+.TP
+.B source
+The source string to prepend.
+
+.TP
+.B range
+A range within the source to restrict the copy from.
+
+.TP
+.B destination
+The destination string the source is prepended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_eos\fP if range.start >= source.used.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_prepend_assure.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_prepend_assure.3
new file mode 100644 (file)
index 0000000..d297a7a
--- /dev/null
@@ -0,0 +1,51 @@
+.TH f_utf_string_dynamic_partial_prepend_assure "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_partial_prepend_assure
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_partial_prepend_assure\fP(
+    \fBconst f_utf_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t        \fP\fIrange\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination only if the string is not already at the beginning and restricted to the given range.
+.PP
+Prepend operations require memory move operations and are therefore likely more expensive than append operations.
+.SH PARAMETERS
+.TP
+.B source
+The source string to prepend.
+
+.TP
+.B range
+A range within the source to restrict the copy from.
+
+.TP
+.B destination
+The destination string the source is prepended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_eos\fP if range.start >= source.used.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_prepend_assure_nulless.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_prepend_assure_nulless.3
new file mode 100644 (file)
index 0000000..fce6d4b
--- /dev/null
@@ -0,0 +1,53 @@
+.TH f_utf_string_dynamic_partial_prepend_assure_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_partial_prepend_assure_nulless
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_partial_prepend_assure_nulless\fP(
+    \fBconst f_utf_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t        \fP\fIrange\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination only if the string is not already at the beginning and restricted to the given range.
+.PP
+Prepend operations require memory move operations and are therefore likely more expensive than append operations.
+.PP
+This ignores NULL characters when comparing both the source and the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source string to prepend.
+
+.TP
+.B range
+A range within the source to restrict the copy from.
+
+.TP
+.B destination
+The destination string the source is prepended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_eos\fP if range.start >= source.used.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_prepend_nulless.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_partial_prepend_nulless.3
new file mode 100644 (file)
index 0000000..0e7b03b
--- /dev/null
@@ -0,0 +1,51 @@
+.TH f_utf_string_dynamic_partial_prepend_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_partial_prepend_nulless
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_partial_prepend_nulless\fP(
+    \fBconst f_utf_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t        \fP\fIrange\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination, but restricted to the given range.
+.PP
+Prepend operations require memory move operations and are therefore likely more expensive than append operations.
+.SH PARAMETERS
+.TP
+.B source
+The source string to prepend.
+
+.TP
+.B range
+A range within the source to restrict the copy from.
+
+.TP
+.B destination
+The destination string the source is prepended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_eos\fP if range.start >= source.used.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_prepend.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_prepend.3
new file mode 100644 (file)
index 0000000..7a32f2f
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_string_dynamic_prepend "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_prepend
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_prepend\fP(
+    \fBconst f_utf_string_static_t   \fP\fIsource\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination.
+.PP
+Prepend operations require memory move operations and are therefore likely more expensive than append operations.
+.SH PARAMETERS
+.TP
+.B source
+The source string to prepend.
+
+.TP
+.B destination
+The destination string the source is prepended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_prepend_assure.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_prepend_assure.3
new file mode 100644 (file)
index 0000000..3efffb6
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_string_dynamic_prepend_assure "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_prepend_assure
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_prepend_assure\fP(
+    \fBconst f_utf_string_static_t   \fP\fIsource\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination only if the string is not already at the beginning.
+.PP
+Prepend operations require memory move operations and are therefore likely more expensive than append operations.
+.SH PARAMETERS
+.TP
+.B source
+The source string to prepend.
+
+.TP
+.B destination
+The destination string the source is prepended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_prepend_assure_nulless.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_prepend_assure_nulless.3
new file mode 100644 (file)
index 0000000..08dcc3b
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_utf_string_dynamic_prepend_assure_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_prepend_assure_nulless
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_prepend_assure_nulless\fP(
+    \fBconst f_utf_string_static_t   \fP\fIsource\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination only if the string is not already at the beginning.
+.PP
+Prepend operations require memory move operations and are therefore likely more expensive than append operations.
+.PP
+This ignores NULL characters when comparing both the source and the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source string to prepend.
+
+.TP
+.B destination
+The destination string the source is prepended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_prepend_nulless.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_prepend_nulless.3
new file mode 100644 (file)
index 0000000..ae622bc
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_string_dynamic_prepend_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_prepend_nulless
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_prepend_nulless\fP(
+    \fBconst f_utf_string_static_t   \fP\fIsource\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination.
+.PP
+Prepend operations require memory move operations and are therefore likely more expensive than append operations.
+.SH PARAMETERS
+.TP
+.B source
+The source string to prepend.
+
+.TP
+.B destination
+The destination string the source is prepended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_resize.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_resize.3
new file mode 100644 (file)
index 0000000..6e49d09
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_utf_string_dynamic_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_resize
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_resize\fP(
+    \fBconst f_array_length_t        \fP\fIlength\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIbuffer\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamic string.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B buffer
+The string to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_seek_line.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_seek_line.3
new file mode 100644 (file)
index 0000000..bb2bf38
--- /dev/null
@@ -0,0 +1,46 @@
+.TH f_utf_string_dynamic_seek_line "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_seek_line
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_seek_line\fP(
+    \fBconst f_utf_string_static_t \fP\fIbuffer\fP,
+    \fBf_string_range_t *const     \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Seek the buffer location forward until EOL is reached.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to traverse.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The start location will be incremented by seek.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success, but stopped at end of string.
+.br
+\fBF_none_stop\fP on success, but stopped at end of range.
+.br
+\fBF_data_not\fP on success, but there was no string data to seek.
+.br
+\fBF_data_not_stop\fP on success, but the range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_seek_line_to.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_seek_line_to.3
new file mode 100644 (file)
index 0000000..16abd3b
--- /dev/null
@@ -0,0 +1,51 @@
+.TH f_utf_string_dynamic_seek_line_to "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_seek_line_to
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_seek_line_to\fP(
+    \fBconst f_utf_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_utf_char_t          \fP\fIseek_to_this\fP,
+    \fBf_string_range_t *const     \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Seek the buffer location forward until the character (1-byte wide) or EOL is reached.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to traverse.
+
+.TP
+.B seek_to_this
+A single-width character representing a character to seek to.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The start location will be incremented by seek.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success, but stopped at end of string.
+.br
+\fBF_none_stop\fP on success, but stopped at end of range.
+.br
+\fBF_data_not\fP on success, but there was no string data to seek.
+.br
+\fBF_data_not_stop\fP on success, but the range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_seek_to.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_seek_to.3
new file mode 100644 (file)
index 0000000..bd463a7
--- /dev/null
@@ -0,0 +1,51 @@
+.TH f_utf_string_dynamic_seek_to "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_seek_to
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_seek_to\fP(
+    \fBconst f_utf_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_utf_char_t          \fP\fIseek_to_this\fP,
+    \fBf_string_range_t *const     \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Seek the buffer location forward until the character (1-byte wide) is reached.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to traverse.
+
+.TP
+.B seek_to_this
+A single-width character representing a character to seek to.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The start location will be incremented by seek.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success, but stopped at end of string.
+.br
+\fBF_none_stop\fP on success, but stopped at end of range.
+.br
+\fBF_data_not\fP on success, but there was no string data to seek.
+.br
+\fBF_data_not_stop\fP on success, but the range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_terminate.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_terminate.3
new file mode 100644 (file)
index 0000000..fb99f7b
--- /dev/null
@@ -0,0 +1,37 @@
+.TH f_utf_string_dynamic_terminate "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_terminate
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_terminate\fP(
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Guarantee that an end of string (NULL) exists at the end of the string.
+.PP
+This is intended to be used for anything requiring NULL terminated strings. This will reallocate more space if necessary.
+.PP
+If destination size is 0, then it will be reallocated and have the NULL assigned at index 0.
+.SH PARAMETERS
+.TP
+.B destination
+The new string, which will be allocated or reallocated as necessary.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if string is too large to fit into the buffer.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_terminate_after.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamic_terminate_after.3
new file mode 100644 (file)
index 0000000..00cf30c
--- /dev/null
@@ -0,0 +1,39 @@
+.TH f_utf_string_dynamic_terminate_after "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamic_terminate_after
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamic_terminate_after\fP(
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Guarantee that an end of string (NULL) exists at the end of the string.
+.PP
+This ensures that the terminating NULL not only exists but is not counted in destination.used.
+.PP
+This is intended to be used for anything requiring NULL terminated strings whose used length cannot be counted. This will reallocate more space if necessary.
+.PP
+If destination size is 0, then it will be reallocated and have the NULL assigned at index 0.
+.SH PARAMETERS
+.TP
+.B destination
+The new string, which will be allocated or reallocated as necessary.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if string is too large to fit into the buffer.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamics_adjust.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamics_adjust.3
new file mode 100644 (file)
index 0000000..262db55
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_utf_string_dynamics_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamics_adjust
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamics_adjust\fP(
+    \fBconst f_array_length_t         \fP\fIlength\fP,
+    \fBf_utf_string_dynamics_t *const \fP\fIdynamics\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamic string array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B dynamics
+The array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamics_append.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamics_append.3
new file mode 100644 (file)
index 0000000..0c6357a
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_dynamics_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamics_append
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamics_append\fP(
+    \fBconst f_utf_string_dynamic_t   \fP\fIsource\fP,
+    \fBf_utf_string_dynamics_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source string onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B destination
+The destination strings the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamics_append_all.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamics_append_all.3
new file mode 100644 (file)
index 0000000..554d57e
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_dynamics_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamics_append_all
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamics_append_all\fP(
+    \fBconst f_utf_string_dynamics_t  \fP\fIsource\fP,
+    \fBf_utf_string_dynamics_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source strings onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source strings to append.
+
+.TP
+.B destination
+The destination strings the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamics_decimate_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamics_decimate_by.3
new file mode 100644 (file)
index 0000000..0b03d11
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_dynamics_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamics_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamics_decimate_by\fP(
+    \fBconst f_array_length_t         \fP\fIamount\fP,
+    \fBf_utf_string_dynamics_t *const \fP\fIdynamics\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamic string array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B dynamics
+The array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (size == 0) (or amount is 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamics_decrease_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamics_decrease_by.3
new file mode 100644 (file)
index 0000000..0720372
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_dynamics_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamics_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamics_decrease_by\fP(
+    \fBconst f_array_length_t         \fP\fIamount\fP,
+    \fBf_utf_string_dynamics_t *const \fP\fIdynamics\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamic string array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B dynamics
+The array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (size == 0) (or amount is 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamics_increase.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamics_increase.3
new file mode 100644 (file)
index 0000000..01c537b
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_string_dynamics_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamics_increase
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamics_increase\fP(
+    \fBconst f_array_length_t         \fP\fIstep\fP,
+    \fBf_utf_string_dynamics_t *const \fP\fIdynamics\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the dynamic string array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B dynamics
+The array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamics_increase_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamics_increase_by.3
new file mode 100644 (file)
index 0000000..71cf7ae
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_string_dynamics_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamics_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamics_increase_by\fP(
+    \fBconst f_array_length_t         \fP\fIamount\fP,
+    \fBf_utf_string_dynamics_t *const \fP\fIdynamics\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamic string array to a larger size.
+.PP
+This will resize making the array larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B dynamics
+The array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamics_resize.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamics_resize.3
new file mode 100644 (file)
index 0000000..24af619
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_utf_string_dynamics_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamics_resize
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamics_resize\fP(
+    \fBconst f_array_length_t         \fP\fIlength\fP,
+    \fBf_utf_string_dynamics_t *const \fP\fIdynamics\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamic string array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B dynamics
+The array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamicss_adjust.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamicss_adjust.3
new file mode 100644 (file)
index 0000000..a9dbeb5
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_utf_string_dynamicss_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamicss_adjust
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamicss_adjust\fP(
+    \fBconst f_array_length_t          \fP\fIlength\fP,
+    \fBf_utf_string_dynamicss_t *const \fP\fIdynamicss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamics string array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B dynamicss
+The array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_adjust().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamicss_append.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamicss_append.3
new file mode 100644 (file)
index 0000000..172c63d
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_dynamicss_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamicss_append
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamicss_append\fP(
+    \fBconst f_utf_string_dynamics_t   \fP\fIsource\fP,
+    \fBf_utf_string_dynamicss_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source string onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source string to append.
+
+.TP
+.B destination
+The destination strings the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamicss_append_all.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamicss_append_all.3
new file mode 100644 (file)
index 0000000..4ff5bb3
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_dynamicss_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamicss_append_all
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamicss_append_all\fP(
+    \fBconst f_utf_string_dynamicss_t  \fP\fIsource\fP,
+    \fBf_utf_string_dynamicss_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source strings onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source strings to append.
+
+.TP
+.B destination
+The destination strings the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamicss_decimate_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamicss_decimate_by.3
new file mode 100644 (file)
index 0000000..e43c2ac
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_dynamicss_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamicss_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamicss_decimate_by\fP(
+    \fBconst f_array_length_t          \fP\fIamount\fP,
+    \fBf_utf_string_dynamicss_t *const \fP\fIdynamicss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamics string array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B dynamicss
+The array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (size == 0) (or amount is 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamicss_decrease_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamicss_decrease_by.3
new file mode 100644 (file)
index 0000000..18c42af
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_dynamicss_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamicss_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamicss_decrease_by\fP(
+    \fBconst f_array_length_t          \fP\fIamount\fP,
+    \fBf_utf_string_dynamicss_t *const \fP\fIdynamicss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamics string array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B dynamicss
+The array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (size == 0) (or amount is 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamicss_increase.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamicss_increase.3
new file mode 100644 (file)
index 0000000..84c044f
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_string_dynamicss_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamicss_increase
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamicss_increase\fP(
+    \fBconst f_array_length_t          \fP\fIstep\fP,
+    \fBf_utf_string_dynamicss_t *const \fP\fIdynamicss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the dynamics string array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B dynamicss
+The array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamicss_increase_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamicss_increase_by.3
new file mode 100644 (file)
index 0000000..d95ea2e
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_string_dynamicss_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamicss_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamicss_increase_by\fP(
+    \fBconst f_array_length_t          \fP\fIamount\fP,
+    \fBf_utf_string_dynamicss_t *const \fP\fIdynamicss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamics string array to a larger size.
+.PP
+This will resize making the array larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B dynamicss
+The array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamicss_resize.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_dynamicss_resize.3
new file mode 100644 (file)
index 0000000..963dae1
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_utf_string_dynamicss_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_dynamicss_resize
+.SH SYNOPSIS
+.nf
+.B #include <dynamic.h>
+.sp
+\fBf_status_t f_utf_string_dynamicss_resize\fP(
+    \fBconst f_array_length_t          \fP\fIlength\fP,
+    \fBf_utf_string_dynamicss_t *const \fP\fIdynamicss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the dynamics string array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B dynamicss
+The array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multis_adjust.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multis_adjust.3
new file mode 100644 (file)
index 0000000..e491aed
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_utf_string_map_multis_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_map_multis_adjust
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_utf_string_map_multis_adjust\fP(
+    \fBconst f_array_length_t           \fP\fIlength\fP,
+    \fBf_utf_string_map_multis_t *const \fP\fImap_multis\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the map_multis array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B map_multis
+The map_multis array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multis_append.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multis_append.3
new file mode 100644 (file)
index 0000000..db03bee
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_utf_string_map_multis_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_map_multis_append
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_utf_string_map_multis_append\fP(
+    \fBconst f_utf_string_map_multi_t \fP\fIsource\fP,
+    \fBf_utf_string_map_multis_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append a single source map_multi onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source maps to append.
+
+.TP
+.B destination
+The destination maps the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multis_append_all.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multis_append_all.3
new file mode 100644 (file)
index 0000000..1f33ba4
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_map_multis_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_map_multis_append_all
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_utf_string_map_multis_append_all\fP(
+    \fBconst f_utf_string_map_multis_t \fP\fIsource\fP,
+    \fBf_utf_string_map_multis_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source map_multis onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source maps to append.
+
+.TP
+.B destination
+The destination maps the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multis_decimate_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multis_decimate_by.3
new file mode 100644 (file)
index 0000000..f096ba9
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_map_multis_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_map_multis_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_utf_string_map_multis_decimate_by\fP(
+    \fBconst f_array_length_t           \fP\fIamount\fP,
+    \fBf_utf_string_map_multis_t *const \fP\fImap_multis\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the map_multis array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B map_multis
+The map_multis array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multis_decrease_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multis_decrease_by.3
new file mode 100644 (file)
index 0000000..49fe38e
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_utf_string_map_multis_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_map_multis_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_utf_string_map_multis_decrease_by\fP(
+    \fBconst f_array_length_t           \fP\fIamount\fP,
+    \fBf_utf_string_map_multis_t *const \fP\fImap_multis\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the map_multis array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B map_multis
+The map_multis array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multis_increase.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multis_increase.3
new file mode 100644 (file)
index 0000000..5099d4a
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_string_map_multis_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_map_multis_increase
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_utf_string_map_multis_increase\fP(
+    \fBconst f_array_length_t           \fP\fIstep\fP,
+    \fBf_utf_string_map_multis_t *const \fP\fImap_multis\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the map_multis array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B map_multis
+The map_multis array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multis_increase_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multis_increase_by.3
new file mode 100644 (file)
index 0000000..d594d3c
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_string_map_multis_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_map_multis_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_utf_string_map_multis_increase_by\fP(
+    \fBconst f_array_length_t           \fP\fIamount\fP,
+    \fBf_utf_string_map_multis_t *const \fP\fImap_multis\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the map_multis array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B map_multis
+The map_multis array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multis_resize.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multis_resize.3
new file mode 100644 (file)
index 0000000..d7d2866
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_utf_string_map_multis_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_map_multis_resize
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_utf_string_map_multis_resize\fP(
+    \fBconst f_array_length_t           \fP\fIlength\fP,
+    \fBf_utf_string_map_multis_t *const \fP\fImap_multis\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the map_multis array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B map_multis
+The map_multis array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multiss_adjust.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multiss_adjust.3
new file mode 100644 (file)
index 0000000..38fee44
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_utf_string_map_multiss_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_map_multiss_adjust
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_utf_string_map_multiss_adjust\fP(
+    \fBconst f_array_length_t            \fP\fIlength\fP,
+    \fBf_utf_string_map_multiss_t *const \fP\fImap_multiss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the map_multiss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B map_multiss
+The map_multiss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multiss_append.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multiss_append.3
new file mode 100644 (file)
index 0000000..96ee2c7
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_utf_string_map_multiss_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_map_multiss_append
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_utf_string_map_multiss_append\fP(
+    \fBconst f_utf_string_map_multis_t \fP\fIsource\fP,
+    \fBf_utf_string_map_multiss_t     *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append a single source map_multis onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source maps to append.
+
+.TP
+.B destination
+The destination maps the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multiss_append_all.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multiss_append_all.3
new file mode 100644 (file)
index 0000000..2d55de4
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_map_multiss_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_map_multiss_append_all
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_utf_string_map_multiss_append_all\fP(
+    \fBconst f_utf_string_map_multiss_t \fP\fIsource\fP,
+    \fBf_utf_string_map_multiss_t      *\fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source map_multiss onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source maps to append.
+
+.TP
+.B destination
+The destination maps the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multiss_decimate_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multiss_decimate_by.3
new file mode 100644 (file)
index 0000000..926bd45
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_map_multiss_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_map_multiss_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_utf_string_map_multiss_decimate_by\fP(
+    \fBconst f_array_length_t            \fP\fIamount\fP,
+    \fBf_utf_string_map_multiss_t *const \fP\fImap_multiss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the map_multiss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B map_multiss
+The map_multiss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multiss_decrease_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multiss_decrease_by.3
new file mode 100644 (file)
index 0000000..a451cc5
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_utf_string_map_multiss_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_map_multiss_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_utf_string_map_multiss_decrease_by\fP(
+    \fBconst f_array_length_t            \fP\fIamount\fP,
+    \fBf_utf_string_map_multiss_t *const \fP\fImap_multiss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the map_multiss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B map_multiss
+The map_multiss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multiss_increase.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multiss_increase.3
new file mode 100644 (file)
index 0000000..2a82ea1
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_string_map_multiss_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_map_multiss_increase
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_utf_string_map_multiss_increase\fP(
+    \fBconst f_array_length_t            \fP\fIstep\fP,
+    \fBf_utf_string_map_multiss_t *const \fP\fImap_multiss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the map_multiss array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B map_multiss
+The map_multiss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multiss_increase_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multiss_increase_by.3
new file mode 100644 (file)
index 0000000..3301c5d
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_string_map_multiss_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_map_multiss_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_utf_string_map_multiss_increase_by\fP(
+    \fBconst f_array_length_t            \fP\fIamount\fP,
+    \fBf_utf_string_map_multiss_t *const \fP\fImap_multiss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the map_multiss array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B map_multiss
+The map_multiss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multiss_resize.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_map_multiss_resize.3
new file mode 100644 (file)
index 0000000..91b81d3
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_utf_string_map_multiss_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_map_multiss_resize
+.SH SYNOPSIS
+.nf
+.B #include <map_multi.h>
+.sp
+\fBf_status_t f_utf_string_map_multiss_resize\fP(
+    \fBconst f_array_length_t            \fP\fIlength\fP,
+    \fBf_utf_string_map_multiss_t *const \fP\fImap_multiss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the map_multiss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B map_multiss
+The map_multiss array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_maps_adjust.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_maps_adjust.3
new file mode 100644 (file)
index 0000000..4d1effa
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_utf_string_maps_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_maps_adjust
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_utf_string_maps_adjust\fP(
+    \fBconst f_array_length_t     \fP\fIlength\fP,
+    \fBf_utf_string_maps_t *const \fP\fImaps\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string maps array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B maps
+The string maps array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_maps_append.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_maps_append.3
new file mode 100644 (file)
index 0000000..e9fcfd5
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_utf_string_maps_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_maps_append
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_utf_string_maps_append\fP(
+    \fBconst f_utf_string_map_t   \fP\fIsource\fP,
+    \fBf_utf_string_maps_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append a single source map onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source maps to append.
+
+.TP
+.B destination
+The destination maps the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_maps_append_all.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_maps_append_all.3
new file mode 100644 (file)
index 0000000..e1c55c0
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_maps_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_maps_append_all
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_utf_string_maps_append_all\fP(
+    \fBconst f_utf_string_maps_t  \fP\fIsource\fP,
+    \fBf_utf_string_maps_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source maps onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source maps to append.
+
+.TP
+.B destination
+The destination maps the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_maps_decimate_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_maps_decimate_by.3
new file mode 100644 (file)
index 0000000..0b25c3d
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_maps_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_maps_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_utf_string_maps_decimate_by\fP(
+    \fBconst f_array_length_t     \fP\fIamount\fP,
+    \fBf_utf_string_maps_t *const \fP\fImaps\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string maps array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B maps
+The string maps array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_maps_decrease_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_maps_decrease_by.3
new file mode 100644 (file)
index 0000000..6bf0b8f
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_utf_string_maps_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_maps_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_utf_string_maps_decrease_by\fP(
+    \fBconst f_array_length_t     \fP\fIamount\fP,
+    \fBf_utf_string_maps_t *const \fP\fImaps\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string maps array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B maps
+The string maps array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_maps_increase.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_maps_increase.3
new file mode 100644 (file)
index 0000000..3618e4e
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_string_maps_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_maps_increase
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_utf_string_maps_increase\fP(
+    \fBconst f_array_length_t     \fP\fIstep\fP,
+    \fBf_utf_string_maps_t *const \fP\fImaps\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string maps array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B maps
+The string maps array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_maps_increase_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_maps_increase_by.3
new file mode 100644 (file)
index 0000000..715cd9b
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_string_maps_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_maps_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_utf_string_maps_increase_by\fP(
+    \fBconst f_array_length_t     \fP\fIamount\fP,
+    \fBf_utf_string_maps_t *const \fP\fImaps\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string maps array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B maps
+The string maps array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_maps_resize.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_maps_resize.3
new file mode 100644 (file)
index 0000000..5f8eac7
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_utf_string_maps_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_maps_resize
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_utf_string_maps_resize\fP(
+    \fBconst f_array_length_t     \fP\fIlength\fP,
+    \fBf_utf_string_maps_t *const \fP\fImaps\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string maps array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B maps
+The string maps array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_mapss_adjust.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_mapss_adjust.3
new file mode 100644 (file)
index 0000000..b49c98e
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_utf_string_mapss_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_mapss_adjust
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_utf_string_mapss_adjust\fP(
+    \fBconst f_array_length_t      \fP\fIlength\fP,
+    \fBf_utf_string_mapss_t *const \fP\fImapss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string mapss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B mapss
+The string mapss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_mapss_append.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_mapss_append.3
new file mode 100644 (file)
index 0000000..389b9ae
--- /dev/null
@@ -0,0 +1,38 @@
+.TH f_utf_string_mapss_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_mapss_append
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_utf_string_mapss_append\fP(
+    \fBconst f_utf_string_maps_t   \fP\fIsource\fP,
+    \fBf_utf_string_mapss_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append a single source maps onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source mapss to append.
+
+.TP
+.B destination
+The destination mapss the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_mapss_append_all.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_mapss_append_all.3
new file mode 100644 (file)
index 0000000..b150652
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_mapss_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_mapss_append_all
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_utf_string_mapss_append_all\fP(
+    \fBconst f_utf_string_mapss_t  \fP\fIsource\fP,
+    \fBf_utf_string_mapss_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source mapss onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source mapss to append.
+
+.TP
+.B destination
+The destination mapss the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is nothing to append (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_mapss_decimate_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_mapss_decimate_by.3
new file mode 100644 (file)
index 0000000..469905a
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_mapss_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_mapss_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_utf_string_mapss_decimate_by\fP(
+    \fBconst f_array_length_t      \fP\fIamount\fP,
+    \fBf_utf_string_mapss_t *const \fP\fImapss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string mapss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B mapss
+The string mapss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_mapss_decrease_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_mapss_decrease_by.3
new file mode 100644 (file)
index 0000000..382782b
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_mapss_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_mapss_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_utf_string_mapss_decrease_by\fP(
+    \fBconst f_array_length_t      \fP\fIamount\fP,
+    \fBf_utf_string_mapss_t *const \fP\fImapss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string mapss array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B mapss
+The string mapss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_mapss_increase.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_mapss_increase.3
new file mode 100644 (file)
index 0000000..ad83695
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_string_mapss_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_mapss_increase
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_utf_string_mapss_increase\fP(
+    \fBconst f_array_length_t      \fP\fIstep\fP,
+    \fBf_utf_string_mapss_t *const \fP\fImapss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string mapss array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B mapss
+The string mapss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size) (or step is 0).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_mapss_increase_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_mapss_increase_by.3
new file mode 100644 (file)
index 0000000..506e8d4
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_string_mapss_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_mapss_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_utf_string_mapss_increase_by\fP(
+    \fBconst f_array_length_t      \fP\fIamount\fP,
+    \fBf_utf_string_mapss_t *const \fP\fImapss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string mapss array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B mapss
+The string mapss array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_mapss_resize.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_mapss_resize.3
new file mode 100644 (file)
index 0000000..7133b1a
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_utf_string_mapss_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_mapss_resize
+.SH SYNOPSIS
+.nf
+.B #include <map.h>
+.sp
+\fBf_status_t f_utf_string_mapss_resize\fP(
+    \fBconst f_array_length_t      \fP\fIlength\fP,
+    \fBf_utf_string_mapss_t *const \fP\fImapss\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string mapss array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B mapss
+The string mapss array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_mash.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_mash.3
new file mode 100644 (file)
index 0000000..58e953b
--- /dev/null
@@ -0,0 +1,57 @@
+.TH f_utf_string_mash "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_mash
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_utf_string_mash\fP(
+    \fBconst f_utf_string_t          \fP\fIglue\fP,
+    \fBconst f_array_length_t        \fP\fIglue_length\fP,
+    \fBconst f_utf_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t        \fP\fIlength\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination with the glue in between.
+.PP
+If the destination string is empty, then no glue is appended.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B glue_length
+The number of bytes the glue takes up.
+
+.TP
+.B source
+The source string to append.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_mash_nulless.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_mash_nulless.3
new file mode 100644 (file)
index 0000000..ba2aa30
--- /dev/null
@@ -0,0 +1,59 @@
+.TH f_utf_string_mash_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_mash_nulless
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_utf_string_mash_nulless\fP(
+    \fBconst f_utf_string_t          \fP\fIglue\fP,
+    \fBconst f_array_length_t        \fP\fIglue_length\fP,
+    \fBconst f_utf_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t        \fP\fIlength\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source string onto the destination with the glue in between.
+.PP
+If the destination string is empty, then no glue is appended.
+.PP
+Skips over NULL characters from glue and source when appending.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B glue_length
+The number of bytes the glue takes up.
+
+.TP
+.B source
+The source string to append.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_mish.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_mish.3
new file mode 100644 (file)
index 0000000..ec514a7
--- /dev/null
@@ -0,0 +1,57 @@
+.TH f_utf_string_mish "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_mish
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_utf_string_mish\fP(
+    \fBconst f_utf_string_t          \fP\fIglue\fP,
+    \fBconst f_array_length_t        \fP\fIglue_length\fP,
+    \fBconst f_utf_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t        \fP\fIlength\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination with the glue in between.
+.PP
+If the destination string is empty, then no glue is appended.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B glue_length
+The number of bytes the glue takes up.
+
+.TP
+.B source
+The source string to append.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_mish_nulless.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_mish_nulless.3
new file mode 100644 (file)
index 0000000..9d82318
--- /dev/null
@@ -0,0 +1,59 @@
+.TH f_utf_string_mish_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_mish_nulless
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_utf_string_mish_nulless\fP(
+    \fBconst f_utf_string_t          \fP\fIglue\fP,
+    \fBconst f_array_length_t        \fP\fIglue_length\fP,
+    \fBconst f_utf_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t        \fP\fIlength\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination with the glue in between.
+.PP
+If the destination string is empty, then no glue is appended.
+.PP
+Skips over NULL characters from glue and source when appending.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B glue_length
+The number of bytes the glue takes up.
+
+.TP
+.B source
+The source string to append.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_prepend.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_prepend.3
new file mode 100644 (file)
index 0000000..590ab19
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_utf_string_prepend "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_prepend
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_utf_string_prepend\fP(
+    \fBconst f_utf_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t        \fP\fIlength\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination.
+.PP
+Prepend operations require memory move operations and are therefore likely more expensive than append operations.
+.SH PARAMETERS
+.TP
+.B source
+The source string to prepend.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The destination string the source is prepended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_prepend_assure.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_prepend_assure.3
new file mode 100644 (file)
index 0000000..5c12c25
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_utf_string_prepend_assure "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_prepend_assure
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_utf_string_prepend_assure\fP(
+    \fBconst f_utf_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t        \fP\fIlength\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination only if the string is not already at the beginning.
+.PP
+Prepend operations require memory move operations and are therefore likely more expensive than append operations.
+.PP
+This ignores NULL characters when comparing both the source and the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source string to prepend.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The destination string the source is prepended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_prepend_assure_nulless.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_prepend_assure_nulless.3
new file mode 100644 (file)
index 0000000..3236824
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_utf_string_prepend_assure_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_prepend_assure_nulless
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_utf_string_prepend_assure_nulless\fP(
+    \fBconst f_utf_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t        \fP\fIlength\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination only if the string is not already at the beginning.
+.PP
+Prepend operations require memory move operations and are therefore likely more expensive than append operations.
+.PP
+This ignores NULL characters when comparing both the source and the destination. Skips over NULL characters from source when prepending.
+.SH PARAMETERS
+.TP
+.B source
+The source string to prepend.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The destination string the source is prepended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_prepend_nulless.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_prepend_nulless.3
new file mode 100644 (file)
index 0000000..10548d9
--- /dev/null
@@ -0,0 +1,49 @@
+.TH f_utf_string_prepend_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_prepend_nulless
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_utf_string_prepend_nulless\fP(
+    \fBconst f_utf_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t        \fP\fIlength\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Prepend the source string onto the destination, but only if the string is not already at the beginning.
+.PP
+Prepend operations require memory move operations and are therefore likely more expensive than append operations.
+.PP
+This ignores NULL characters when comparing both the source and the destination. Skips over NULL characters from source when prepending.
+.SH PARAMETERS
+.TP
+.B source
+The source string to prepend.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The destination string the source is prepended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_seek_line.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_seek_line.3
new file mode 100644 (file)
index 0000000..037d898
--- /dev/null
@@ -0,0 +1,44 @@
+.TH f_utf_string_seek_line "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_seek_line
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_utf_string_seek_line\fP(
+    \fBconst f_utf_string_t    \fP\fIstring\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Seek the string location forward until EOL is reached.
+.SH PARAMETERS
+.TP
+.B string
+The string to traverse.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The start location will be incremented by seek.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_stop\fP on success, but stopped at end of range.
+.br
+\fBF_data_not_stop\fP on success, but the range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_seek_line_to.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_seek_line_to.3
new file mode 100644 (file)
index 0000000..6ef75d2
--- /dev/null
@@ -0,0 +1,45 @@
+.TH f_utf_string_seek_line_to "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_seek_line_to
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_utf_string_seek_line_to\fP(
+    \fBconst f_utf_string_t    \fP\fIstring\fP,
+    \fBconst f_utf_char_t      \fP\fIseek_to\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Seek the string location forward until the character (1-byte wide) or EOL is reached.
+.SH PARAMETERS
+.TP
+.B string
+The string to traverse.
+
+.TP
+.B seek_to
+A character representing a character to seek to.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The start location will be incremented by seek.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eol\fP on success, but stopped at EOL.
+.br
+\fBF_none_stop\fP on success, but stopped at the stop location.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_seek_to.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_seek_to.3
new file mode 100644 (file)
index 0000000..9f00393
--- /dev/null
@@ -0,0 +1,47 @@
+.TH f_utf_string_seek_to "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_seek_to
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t f_utf_string_seek_to\fP(
+    \fBconst f_utf_string_t    \fP\fIstring\fP,
+    \fBconst f_utf_char_t      \fP\fIseek_to\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Seek the string location forward until the character (1-byte wide) is reached.
+.SH PARAMETERS
+.TP
+.B string
+The string to traverse.
+
+.TP
+.B seek_to
+A character representing a character to seek to.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The start location will be incremented by seek.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_stop\fP on success, but stopped at the stop location.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_triples_adjust.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_triples_adjust.3
new file mode 100644 (file)
index 0000000..abfc9a6
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_utf_string_triples_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_triples_adjust
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_utf_string_triples_adjust\fP(
+    \fBconst f_array_length_t        \fP\fIlength\fP,
+    \fBf_utf_string_triples_t *const \fP\fItriples\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string triples array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B triples
+The string triples array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_triples_append.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_triples_append.3
new file mode 100644 (file)
index 0000000..c4b9c63
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_triples_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_triples_append
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_utf_string_triples_append\fP(
+    \fBconst f_utf_string_triple_t   \fP\fIsource\fP,
+    \fBf_utf_string_triples_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source triples onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source triple to append.
+
+.TP
+.B destination
+The destination triples the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_triples_append_all.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_triples_append_all.3
new file mode 100644 (file)
index 0000000..a65b6af
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_triples_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_triples_append_all
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_utf_string_triples_append_all\fP(
+    \fBconst f_utf_string_triples_t  \fP\fIsource\fP,
+    \fBf_utf_string_triples_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source triples onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source triples to append.
+
+.TP
+.B destination
+The destination triples the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_triples_decimate_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_triples_decimate_by.3
new file mode 100644 (file)
index 0000000..207c87e
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_triples_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_triples_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_utf_string_triples_decimate_by\fP(
+    \fBconst f_array_length_t        \fP\fIamount\fP,
+    \fBf_utf_string_triples_t *const \fP\fItriples\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string triples array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B triples
+The string triples array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_triples_decrease_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_triples_decrease_by.3
new file mode 100644 (file)
index 0000000..15a14dd
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_triples_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_triples_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_utf_string_triples_decrease_by\fP(
+    \fBconst f_array_length_t        \fP\fIamount\fP,
+    \fBf_utf_string_triples_t *const \fP\fItriples\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string triples array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B triples
+The string triples array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_triples_increase.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_triples_increase.3
new file mode 100644 (file)
index 0000000..3d66ac9
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_string_triples_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_triples_increase
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_utf_string_triples_increase\fP(
+    \fBconst f_array_length_t        \fP\fIstep\fP,
+    \fBf_utf_string_triples_t *const \fP\fItriples\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string triples array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B triples
+The string triples array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_triples_increase_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_triples_increase_by.3
new file mode 100644 (file)
index 0000000..0d5a58a
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_string_triples_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_triples_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_utf_string_triples_increase_by\fP(
+    \fBconst f_array_length_t        \fP\fIamount\fP,
+    \fBf_utf_string_triples_t *const \fP\fItriples\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string triples array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B triples
+The string triples array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_triples_resize.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_triples_resize.3
new file mode 100644 (file)
index 0000000..637ef8a
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_utf_string_triples_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_triples_resize
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_utf_string_triples_resize\fP(
+    \fBconst f_array_length_t        \fP\fIlength\fP,
+    \fBf_utf_string_triples_t *const \fP\fItriples\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string triples array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B triples
+The string triples array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_tripless_adjust.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_tripless_adjust.3
new file mode 100644 (file)
index 0000000..c1d8d7d
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_utf_string_tripless_adjust "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_tripless_adjust
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_utf_string_tripless_adjust\fP(
+    \fBconst f_array_length_t         \fP\fIlength\fP,
+    \fBf_utf_string_tripless_t *const \fP\fItripless\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string tripless array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B tripless
+The string tripless array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_tripless_append.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_tripless_append.3
new file mode 100644 (file)
index 0000000..11c50ae
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_tripless_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_tripless_append
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_utf_string_tripless_append\fP(
+    \fBconst f_utf_string_triples_t   \fP\fIsource\fP,
+    \fBf_utf_string_tripless_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the single source triples onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source triples to append.
+
+.TP
+.B destination
+The destination tripless the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_tripless_append_all.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_tripless_append_all.3
new file mode 100644 (file)
index 0000000..f83bf4b
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_tripless_append_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_tripless_append_all
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_utf_string_tripless_append_all\fP(
+    \fBconst f_utf_string_tripless_t  \fP\fIsource\fP,
+    \fBf_utf_string_tripless_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the source tripless onto the destination.
+.SH PARAMETERS
+.TP
+.B source
+The source tripless to append.
+
+.TP
+.B destination
+The destination tripless the source is appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (size == 0).
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_tripless_decimate_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_tripless_decimate_by.3
new file mode 100644 (file)
index 0000000..21cd574
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_tripless_decimate_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_tripless_decimate_by
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_utf_string_tripless_decimate_by\fP(
+    \fBconst f_array_length_t         \fP\fIamount\fP,
+    \fBf_utf_string_tripless_t *const \fP\fItripless\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string tripless array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decimate the size by.
+
+.TP
+.B tripless
+The string tripless array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_tripless_decrease_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_tripless_decrease_by.3
new file mode 100644 (file)
index 0000000..dfbb0b9
--- /dev/null
@@ -0,0 +1,40 @@
+.TH f_utf_string_tripless_decrease_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_tripless_decrease_by
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_utf_string_tripless_decrease_by\fP(
+    \fBconst f_array_length_t         \fP\fIamount\fP,
+    \fBf_utf_string_tripless_t *const \fP\fItripless\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string tripless array to a smaller size.
+.PP
+This will resize making the array smaller based on (size - given length). If the given length is too small, then the resize will fail. This will not shrink the size to less than 0.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to decrease the size by.
+
+.TP
+.B tripless
+The string tripless array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if amount is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_tripless_increase.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_tripless_increase.3
new file mode 100644 (file)
index 0000000..c28283a
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_string_tripless_increase "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_tripless_increase
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_utf_string_tripless_increase\fP(
+    \fBconst f_array_length_t         \fP\fIstep\fP,
+    \fBf_utf_string_tripless_t *const \fP\fItripless\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increase the size of the string tripless array, but only if necessary.
+.PP
+If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B step
+The allocation step to use. Must be greater than 0.
+
+.TP
+.B tripless
+The string tripless array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + 1 <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_tripless_increase_by.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_tripless_increase_by.3
new file mode 100644 (file)
index 0000000..a0cb5ac
--- /dev/null
@@ -0,0 +1,42 @@
+.TH f_utf_string_tripless_increase_by "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_tripless_increase_by
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_utf_string_tripless_increase_by\fP(
+    \fBconst f_array_length_t         \fP\fIamount\fP,
+    \fBf_utf_string_tripless_t *const \fP\fItripless\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string tripless array to a larger size.
+.PP
+This will resize making the string larger based on the given length. If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). If already set to the maximum buffer size, then the resize will fail.
+.SH PARAMETERS
+.TP
+.B amount
+A positive number representing how much to increase the size by.
+
+.TP
+.B tripless
+The string tripless array to resize.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success, but there is no reason to increase size (used + amount <= size).
+.br
+\fBF_array_too_large\fP (with error bit) if the new array length is too large.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_string_tripless_resize.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_string_tripless_resize.3
new file mode 100644 (file)
index 0000000..26aaa2d
--- /dev/null
@@ -0,0 +1,36 @@
+.TH f_utf_string_tripless_resize "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_string_tripless_resize
+.SH SYNOPSIS
+.nf
+.B #include <triple.h>
+.sp
+\fBf_status_t f_utf_string_tripless_resize\fP(
+    \fBconst f_array_length_t         \fP\fIlength\fP,
+    \fBf_utf_string_tripless_t *const \fP\fItripless\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Resize the string tripless array.
+.SH PARAMETERS
+.TP
+.B length
+The new size to use.
+
+.TP
+.B tripless
+The string tripless array to adjust.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_memory_resize().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_unicode_from.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_unicode_from.3
new file mode 100644 (file)
index 0000000..b19b24d
--- /dev/null
@@ -0,0 +1,45 @@
+.TH f_utf_unicode_from "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_unicode_from
+.SH SYNOPSIS
+.nf
+.B #include <convert.h>
+.sp
+\fBf_status_t f_utf_unicode_from\fP(
+    \fBconst uint32_t         \fP\fIunicode\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP,
+    \fBf_string_t            *\fP\fIcharacter\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert a given Unicode into a string block representing a single character.
+.SH PARAMETERS
+.TP
+.B unicode
+A 32-bit integer representing the Unicode (such as U+0001). Does not need to be interpretted like UTF-8, this is a number from 0 onto max supported Unicode integer value (U+10FFFF).
+
+.TP
+.B width_max
+The max width available for representing the UTF-8 character. There must be enough space in the character buffer to handle the Unicode width. It is recommended to always have 4 characters (4 uint8_t) of space available in character.
+
+.TP
+.B character
+The (UTF-8) character as a sequence of bytes. This must have a length equal to the width (up to 4 characters) to be safely used. The caller is expected to ensure this.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_failure\fP (with error bit) if width_max is not long enough to convert.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_unicode_string_to.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_unicode_string_to.3
new file mode 100644 (file)
index 0000000..91b012c
--- /dev/null
@@ -0,0 +1,45 @@
+.TH f_utf_unicode_string_to "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_unicode_string_to
+.SH SYNOPSIS
+.nf
+.B #include <convert.h>
+.sp
+\fBf_status_t f_utf_unicode_string_to\fP(
+    \fBconst f_string_t       \fP\fIstring\fP,
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBuint32_t              *\fP\fIunicode\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert a string of the format "U+FFFF" into the codepoint value.
+.PP
+This ignores NULL characters. The string may only contain "U+" followed by a hexidecimal digit, upper or lower case. The "U+" prefix is optional. Only ASCII characters are allowed to represent the Unicode sequence string.
+.SH PARAMETERS
+.TP
+.B string
+The string representing a Unicode sequence.
+
+.TP
+.B length
+The maximum number of characters.
+
+.TP
+.B unicode
+A 32-bit integer representing the Unicode (such as U+0001). Does not need to be interpretted like UTF-8, this is a number from 0 onto max supported Unicode integer value (U+10FFFF).
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_failure\fP (with error bit) if width_max is not long enough to convert.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_valid_not\fP (with error bit) if string is not a valid Unicode string.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_0/f_utf/data/documentation/man/man3/f_utf_unicode_to.3 b/level_0/f_utf/data/documentation/man/man3/f_utf_unicode_to.3
new file mode 100644 (file)
index 0000000..e02410c
--- /dev/null
@@ -0,0 +1,45 @@
+.TH f_utf_unicode_to "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+f_utf_unicode_to
+.SH SYNOPSIS
+.nf
+.B #include <convert.h>
+.sp
+\fBf_status_t f_utf_unicode_to\fP(
+    \fBconst f_string_t       \fP\fIcharacter\fP,
+    \fBconst f_array_length_t \fP\fIwidth_max\fP,
+    \fBuint32_t              *\fP\fIunicode\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert a given string block representing a single character into Unicode.
+.SH PARAMETERS
+.TP
+.B character
+The (UTF-8) character to convert to the Unicode representation. The f_utf_char_t is a 32-bit integer containing UTF-8 sequences, unchanged.
+
+.TP
+.B width_max
+The max width available for representing the UTF-8 character. There must be enough space in the character buffer to handle the Unicode width. It is recommended to always have 4 characters (4 uint8_t) of space available in character.
+
+.TP
+.B unicode
+A 32-bit integer representing the Unicode (such as U+0001). Does not need to be interpretted like UTF-8, this is a number from 0 onto max supported Unicode integer value (U+10FFFF).
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_failure\fP (with error bit) if width is not long enough to convert.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+\fBF_utf_not\fP (with error bit) if unicode is an invalid Unicode character.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index a8926d5a61cddc04b2fb148f1b29c4ab9db16fe9..311f6346ab080fd1c8a7eaadb2a2355d1fd14006 100644 (file)
 15710381
 15710382
 15710383
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 78d4695cb18125782eaa8f5eb567aabea94a639f..935ee9b3c56287ebec0b70c6ecf31c1c298e3846 100644 (file)
 4036202899
 4036202900
 4036202901
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 0d0aae1858676d5bf79b35ef8a661b1c5693a3a7..a861a7276c3997cb387f4624dbf7ad63c7b197ae 100644 (file)
 4036924343
 4036924344
 4036924345
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 09ad40e3d8dca54559f156aee528106e01554681..fa0427572ef1d0f016ff877fa0ef2fb752591e35 100644 (file)
 14909629
 14912151
 14912153
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index a4b419ae4c064ac28912d2ca57aec9252bb85838..10e8b40d580abe0076151807e17b506e9520487b 100644 (file)
 4036985994
 4036985995
 4036985996
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c51ad3e9d4c778abc7f5d2026575d0e723afc753..51ebc3217cd24ce44ab5133b7498b83e9e252a39 100644 (file)
 14792381
 14792382
 14792383
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index a0466a7b648ea0e7cc6a74ba5f7fa18ba2a59f26..a5758a30bfe64a1c916045a93f7351ed76ff66fa 100644 (file)
 4103061435
 4103061436
 4103061437
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6d4d5acc5d02c872d0be7bf0bb27102aca50422..05ec73384e7f30012da984959792648c9aef3cbf 100644 (file)
 15711651
 15711652
 15711653
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index b4606e8fe33aaa6b4e1ab5f93c04dc6ef7661571..1ebdb7d5e3f0a5340a8eca58fcef65d3825a42c0 100644 (file)
@@ -36,3 +36,8 @@
 14844571
 14844572
 14856636
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index d2e8f5fa794515e2ad612884640e23b28f7c786c..f0dec87e5329ea621cf69c1759b1ad8fe42413d4 100644 (file)
 15379869
 15379870
 15379871
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index fb31aa3b07fd9e329627225a730bf45c1db28b9d..361bb1b9381c401dab4d748f9f39998a54f4a214 100644 (file)
 15712174
 15712188
 15712189
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 6ed28170774bee577eb24c2c1b944de40d7c3806..b0660ed5b88f8edfcf35c655726c1b2694fc9cbc 100644 (file)
@@ -15,3 +15,8 @@
 14844079
 14844319
 14909568
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 296f48f13da1c50541cbbe29bd49b9e42307ad4e..f924263e7ea94adc3e6da71fe75109a7558b61b0 100644 (file)
@@ -78,3 +78,8 @@
 52157
 52158
 52159
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c581199155e6c3792a4972bd8cd8cbb3315b4e1f..3c5220fd4618435cb9bcc93554d93221bb799186 100644 (file)
@@ -1 +1,6 @@
 14785152
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index f846e4f6e9c20ef78224d5f6e92c7b560d33783c..c96d6a8ccec5f40ca2910f530c618a5e695dc6de 100644 (file)
@@ -1 +1,6 @@
 14844043
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c202ea0c620a560582a39efa4164079c8b380f72..6c3b5620c1333cb6a05640572d2a5b48da65d3e7 100644 (file)
 15712164
 15712165
 15712166
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 250189e87e165ce6eb7f687baeee0477c866c11c..0f57d0c015a097b2f74629a23b3b4805465cc162 100644 (file)
@@ -9,3 +9,8 @@
 15711423
 15710387
 15710388
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 0ebf2a893e2e9b87cab20bde211325b32e6696ef..b4cccc9b447678f04dc8f22347b4f312513e432b 100644 (file)
@@ -7,3 +7,8 @@
 15710606
 15710607
 15711423
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 10e536e402459546d2e6846cd632cae48c4d82fa..9b564c34214aae4cb44d681e4edd27585ff4023a 100644 (file)
@@ -10,3 +10,8 @@
 15711423
 15710387
 15710388
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 4ea834999a765e5648173ec2c5c4095dec0dc310..1a5ab4c04eeaf243d4f7dafe8783df72164a21e7 100644 (file)
@@ -8,3 +8,8 @@
 15710606
 15710607
 15711423
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 9fc30255386706f211124972a134ffd6a0ccf916..fd912861d118f76eb7eb2c2eea4ee84326577db4 100644 (file)
@@ -11,3 +11,8 @@
 15711423
 15710387
 15710388
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 15b0c6c5816d6a3ec37110ad5ec68b1c92d0d1a4..665cccc831cc62d1093d9834bcd07c9ba6842d37 100644 (file)
@@ -9,3 +9,8 @@
 15710606
 15710607
 15711423
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 6b5c7e0347d9e1267f27be39d0cc030bdc7472f3..6037cb54487ea1fcbf41f35996f703398e5ca1b0 100644 (file)
@@ -34,3 +34,8 @@
 14844045
 14844320
 15711167
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index a0632ede59db2b52591890b0d63364519c9d0e52..93c2d608391dd94ebe06633cfc9ffc5eaf2f2e87 100644 (file)
@@ -1696,3 +1696,8 @@ U+FE2C
 U+FE2D
 U+FE2E
 U+FE2F
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index e333f006ad20842f204a9fb5e3fa6af2537cfaec..095e09ce6e18328df0eb3ecd3b03ee712f4b3e6f 100644 (file)
@@ -144,3 +144,8 @@ U+13452
 U+13453
 U+13454
 U+13455
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 7c17dbcc8311284ca72c9fdfbaa93c4aaa9a59b4..57cbca8c7cf9f605f889be6f1467e06819503cc1 100644 (file)
@@ -1641,3 +1641,8 @@ U+1E4F6
 U+1E4F7
 U+1E4F8
 U+1E4F9
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 6fd5e16e1936c396f91707c9801b22fca1461189..1a76d8fbe6fa58aff6474931b708fcae26fbcf5f 100644 (file)
@@ -1378,3 +1378,8 @@ U+3030
 U+303D
 U+3297
 U+3299
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index b108d1ae7122e8d537afc45d83e1fa88e8a0d745..a4018d84455ac6b4ecbc7a7b30c758f742593af5 100644 (file)
@@ -1830,3 +1830,8 @@ U+1F109
 U+1F10A
 U+1F10B
 U+1F10C
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 0c2849fd1097bc292b3d8458f1c85b62ae85e1c1..34cee575c9dc997cdd2669f12504f640f3f1f591 100644 (file)
@@ -190,3 +190,8 @@ U+1DBC
 U+1DBD
 U+1DBE
 U+1DBF
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index edc57df0e0a0f020cb4dca6cac384e337bdabdfc..7c9dfa31b5c787dfb39946fdbca2e29b8c6dfde6 100644 (file)
@@ -137466,3 +137466,8 @@ U+10FFFA
 U+10FFFB
 U+10FFFC
 U+10FFFD
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 6440757dcac67304fbb04265ef674c389130c953..a79b8cf12cd5e4086bd7163d339788350ace60f4 100644 (file)
@@ -817,3 +817,8 @@ U+FF62
 U+FF63
 U+FF64
 U+FF65
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 34ab11491858164cea76b36811adfdc144958a1c..8ed46f9f0eacf81990f640b84435810b1f89e6a5 100644 (file)
@@ -36,3 +36,8 @@ U+209A
 U+209B
 U+209C
 U+2C7C
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c2be6908303d4f6cde84179b7ec2eafc27d0fefe..57f65abf54422e722dd78b10a771e0eb88702a6a 100644 (file)
@@ -274,3 +274,8 @@ U+AB5C
 U+AB5D
 U+AB5E
 U+AB5F
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 3b7d7b52e8c4b4f7da7f7921406a3e6db3ed995e..97a418ce9e2b97ae36f1f49d18d29d74737ebf25 100644 (file)
@@ -7739,3 +7739,8 @@ U+FFED
 U+FFEE
 U+FFFC
 U+FFFD
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 433ee9fdf7baa4a792f9fb0e9e6322fa8e455485..06113e0ca37e1aea36c76a03dac87b4e1337986b 100644 (file)
@@ -12,3 +12,8 @@ U+2009
 U+200A
 U+200B
 U+3000
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index be9c2122fe40d80292a1fef99b967ee05826896c..921cc14356ed68f4a74758713c9e280eb1ed15cc 100644 (file)
@@ -78,3 +78,8 @@ U+02FC
 U+02FD
 U+02FE
 U+02FF
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index e313bd2db2b38d36343cf812d4ba1e93043c760f..71c5498b4ed444c44d9fc3fa923d8c458e94f559 100644 (file)
@@ -1 +1,6 @@
 U+1680
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index ef54693d5267537f16209ccf9b48a3282c1cd690..fe3f8c5dd422e30619fea8d9229196443b695227 100644 (file)
@@ -1 +1,6 @@
 U+200B
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 5978c3399865af58fac2854abd0ff1be7cf24198..5091f69959772fb4f2c2cba2ca6241527ca73f6e 100644 (file)
@@ -52754,3 +52754,8 @@ U+FFE3
 U+FFE4
 U+FFE5
 U+FFE6
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 9586ace3316047c5932afa3cdbe1a0368ee31788..163f6af4964aa401fda0404e81df035e32994a7e 100644 (file)
@@ -9,3 +9,8 @@ U+FE4F
 U+FF3F
 U+FE33
 U+FE34
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index ef4ee404d41b1d48a6bc87caec0b028192dacc26..03a77847654dfd62b6d35461d75c18d4cdbda830 100644 (file)
@@ -7,3 +7,8 @@ U+FE4D
 U+FE4E
 U+FE4F
 U+FF3F
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 405ec7762e129e83942d7de56a4f101facca7f61..8be43759c35e4880051d52a3c8670a8856c99f62 100644 (file)
@@ -10,3 +10,8 @@ U+FE4F
 U+FF3F
 U+FE33
 U+FE34
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index f71b0e748d39a822d237608a13e1a0d9f2b55dbd..c0b8eeef055d3ee3e5f2379a5ba370e3dd7d9856 100644 (file)
@@ -8,3 +8,8 @@ U+FE4D
 U+FE4E
 U+FE4F
 U+FF3F
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index d47698df95747f3f7f6cb072201c2cef743f792f..3fd4f1215efda90a926f6f3881b79a931c9fcd2d 100644 (file)
@@ -11,3 +11,8 @@ U+FE4F
 U+FF3F
 U+FE33
 U+FE34
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index d8d0538aabc5f0afc5f1ef80f482a1d74a734b3f..b6a2782ce38221005c68191d4de4442cb85d4731 100644 (file)
@@ -9,3 +9,8 @@ U+FE4D
 U+FE4E
 U+FE4F
 U+FF3F
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 92935863c439d7c346d4ee6a613e5c30087677bf..f766a58af34a1054cb55e9bfabe77d94134d948a 100644 (file)
@@ -34,3 +34,8 @@ U+200C
 U+200D
 U+2060
 U+FEFF
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 2896039cbe8c42fc3014b6c22afedb8a143036e1..9c9e25fcde57a75360e70f04449ceb30656df038 100644 (file)
 7
 8
 9
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 2c930343d411de00dcfaf3cb8776057d9c550288..7566ead8cb7a91ebb05d1ee827b34811d7edc017 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library control_group.c
 
 build_sources_headers control_group.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_1/fl_control_group/data/documentation/man/man3/fl_control_group_apply.3 b/level_1/fl_control_group/data/documentation/man/man3/fl_control_group_apply.3
new file mode 100644 (file)
index 0000000..6725f8d
--- /dev/null
@@ -0,0 +1,43 @@
+.TH fl_control_group_apply "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_control_group_apply
+.SH SYNOPSIS
+.nf
+.B #include <control_group.h>
+.sp
+\fBf_status_t fl_control_group_apply\fP(
+    \fBconst f_control_group_t \fP\fIcontrol_group\fP,
+    \fBconst pid_t             \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Apply the given control groups to the process represented by the PID.
+.PP
+Errors (with error bit) from: f_file_stream_open().
+.SH PARAMETERS
+.TP
+.B control_group
+
+.TP
+.B id
+The PID of the process to apply the control group(s) to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_memory_not\fP (with error bit) if a out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if the current user/process has insufficient privileges to set certain cgroup settings.
+.br
+\fBF_space_not\fP (with error bit) if a maximum resource limit is reached and there is not enough space.
+.br
+\fBF_failure\fP (with error bit) on any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index 8387716d73ddcb4fe978d3ce0e87f390e0158861..6c99bd13060025922ec6d62f29b765295b045f3a 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library conversion.c private-conversion.c conversion/common.c
 
 build_sources_headers conversion.h conversion/common.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_1/fl_conversion/data/documentation/man/man3/fl_conversion_dynamic_partial_to_signed.3 b/level_1/fl_conversion/data/documentation/man/man3/fl_conversion_dynamic_partial_to_signed.3
new file mode 100644 (file)
index 0000000..ef9635c
--- /dev/null
@@ -0,0 +1,42 @@
+.TH fl_conversion_dynamic_partial_to_signed "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_conversion_dynamic_partial_to_signed
+.SH SYNOPSIS
+.nf
+.B #include <conversion.h>
+.sp
+\fBf_status_t fl_conversion_dynamic_partial_to_signed\fP(
+    \fBconst fl_conversion_data_t \fP\fIdata\fP,
+    \fBconst f_string_static_t    \fP\fIbuffer\fP,
+    \fBconst f_string_range_t     \fP\fIrange\fP,
+    \fBf_number_signed_t *const   \fP\fInumber\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+A structure designating a start and stop range for some string.
+.PP
+In general, this project uses the start and stop position inclusively, meaning that a range of 0 to 1 would include positions 0 and position 1. Therefore, a range from 0 to 0 would be include position 0. Set start to some value larger than stop to designate that there is no range (such as start = 1, stop = 0).
+.PP
+start: the start position. stop: the stop position.
+.sp
+.RS
+.nf
+\fB
+struct f_string_range_t {
+  f_array_length_t \fIstart\fP;
+  f_array_length_t \fIstop\fP;
+};
+\fP
+.fi
+.RE
+.SH RETURN VALUE
+.PP
+\fBF_none\fP if the binary string was converted to an signed long.
+.br
+\fBF_data_not\fP if string starts with a null (length is 0).
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_conversion/data/documentation/man/man3/fl_conversion_dynamic_partial_to_signed_detect.3 b/level_1/fl_conversion/data/documentation/man/man3/fl_conversion_dynamic_partial_to_signed_detect.3
new file mode 100644 (file)
index 0000000..0644ab2
--- /dev/null
@@ -0,0 +1,64 @@
+.TH fl_conversion_dynamic_partial_to_signed_detect "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_conversion_dynamic_partial_to_signed_detect
+.SH SYNOPSIS
+.nf
+.B #include <conversion.h>
+.sp
+\fBf_status_t fl_conversion_dynamic_partial_to_signed_detect\fP(
+    \fBconst fl_conversion_data_t \fP\fIdata\fP,
+    \fBconst f_string_static_t    \fP\fIbuffer\fP,
+    \fBconst f_string_range_t     \fP\fIrange\fP,
+    \fBf_number_signed_t *const   \fP\fInumber\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert a series of positive or negative number characters into an f_number_signed_t.
+.PP
+decimal is used for all other cases.
+.PP
+Leading 0's and whitespace are ignored. Whitespace after the first digit is considered invalid.
+.PP
+This function is similar to strtoll(), but the behavior of error handling and special bases are different. In particular, octals are specified here with '0b' prefix or '0B' prefix instead of the ridiculous '0' prefix.
+.SH PARAMETERS
+.TP
+.B data
+Conversion data for specifying things such as treating this as a negative number.
+
+.TP
+.B buffer
+The string to convert.
+
+.TP
+.B range
+The start/stop range to convert.
+
+.TP
+.B number
+This will store the value of the converted string. This value is only changed on success.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if string starts with a null (length is 0).
+.br
+\fBF_base_not\fP (with error bit) if no supported or valid base unit is provided.
+.br
+\fBF_complete_not_utf\fP (with error bit) if an incomplete UTF-8 fragment is found.
+.br
+\fBF_number\fP (with error bit) if parameter is not a number.
+.br
+\fBF_number_decimal\fP (with error bit) if number has a decimal digit.
+.br
+\fBF_number_overflow\fP (with error bit) on integer overflow.
+.br
+\fBF_number_underflow\fP (with error bit) on integer underflow.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_conversion/data/documentation/man/man3/fl_conversion_dynamic_partial_to_unsigned.3 b/level_1/fl_conversion/data/documentation/man/man3/fl_conversion_dynamic_partial_to_unsigned.3
new file mode 100644 (file)
index 0000000..1d14570
--- /dev/null
@@ -0,0 +1,56 @@
+.TH fl_conversion_dynamic_partial_to_unsigned "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_conversion_dynamic_partial_to_unsigned
+.SH SYNOPSIS
+.nf
+.B #include <conversion.h>
+.sp
+\fBf_status_t fl_conversion_dynamic_partial_to_unsigned\fP(
+    \fBconst fl_conversion_data_t \fP\fIdata\fP,
+    \fBconst f_string_static_t    \fP\fIbuffer\fP,
+    \fBconst f_string_range_t     \fP\fIrange\fP,
+    \fBf_number_unsigned_t *const \fP\fInumber\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert a series of number characters into a f_number_unsigned_t.
+.PP
+This will stop at one of the following: range.stop or a non-digit. This will ignore NULL values. This will not process signed statuses (+/-).
+.SH PARAMETERS
+.TP
+.B data
+Conversion data for specifying things such as treating this as a negative number.
+
+.TP
+.B buffer
+The string to convert.
+
+.TP
+.B range
+The start/stop range to convert.
+
+.TP
+.B number
+This will store the value of the converted string. This value is only changed on success.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP if the binary string was converted to an unsigned long.
+.br
+\fBF_data_not\fP if string starts with a null (length is 0).
+.br
+\fBF_base_not\fP (with error bit) if no supported or valid base unit is provided.
+.br
+\fBF_number\fP (with error bit) if no conversion was made due to non-binary values being found.
+.br
+\fBF_number_decimal\fP (with error bit) if number has a decimal digit.
+.br
+\fBF_number_overflow\fP (with error bit) on integer overflow.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_conversion/data/documentation/man/man3/fl_conversion_dynamic_partial_to_unsigned_detect.3 b/level_1/fl_conversion/data/documentation/man/man3/fl_conversion_dynamic_partial_to_unsigned_detect.3
new file mode 100644 (file)
index 0000000..56d209d
--- /dev/null
@@ -0,0 +1,66 @@
+.TH fl_conversion_dynamic_partial_to_unsigned_detect "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_conversion_dynamic_partial_to_unsigned_detect
+.SH SYNOPSIS
+.nf
+.B #include <conversion.h>
+.sp
+\fBf_status_t fl_conversion_dynamic_partial_to_unsigned_detect\fP(
+    \fBconst fl_conversion_data_t \fP\fIdata\fP,
+    \fBconst f_string_static_t    \fP\fIbuffer\fP,
+    \fBconst f_string_range_t     \fP\fIrange\fP,
+    \fBf_number_unsigned_t *const \fP\fInumber\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert a series of positive number characters into an f_number_unsigned_t.
+.PP
+decimal is used for all other cases.
+.PP
+Leading 0's and whitespace are ignored. Whitespace after the first digit is considered invalid.
+.PP
+This function is similar to strtoull(), but the behavior of error handling and special bases are different. In particular, octals are specified here with '0b' prefix or '0B' prefix instead of the ridiculous '0' prefix. Negative values are reported as such instead of being converted into the unsigned equivalent.
+.SH PARAMETERS
+.TP
+.B data
+Conversion data for specifying things such as treating this as a negative number. This auto-detects the base and negative, ignoring the base number and negative flag.
+
+.TP
+.B buffer
+The string to convert.
+
+.TP
+.B range
+The start/stop range to convert.
+
+.TP
+.B number
+This will store the value of the converted string. This value is only changed on success.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if string starts with a null (length is 0).
+.br
+\fBF_base_not\fP (with error bit) if no supported or valid base unit is provided.
+.br
+\fBF_complete_not_utf\fP (with error bit) if an incomplete UTF-8 fragment is found.
+.br
+\fBF_number\fP (with error bit) if parameter is not a number.
+.br
+\fBF_number_decimal\fP (with error bit) if number has a decimal digit.
+.br
+\fBF_number_negative\fP (with error bit) on negative value.
+.br
+\fBF_number_positive\fP (with error bit) on positive value (has a +, such as '+1', when only '1' is valid here).
+.br
+\fBF_number_overflow\fP (with error bit) on integer overflow.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_conversion/data/documentation/man/man3/fl_conversion_dynamic_to_signed.3 b/level_1/fl_conversion/data/documentation/man/man3/fl_conversion_dynamic_to_signed.3
new file mode 100644 (file)
index 0000000..660e0a4
--- /dev/null
@@ -0,0 +1,53 @@
+.TH fl_conversion_dynamic_to_signed "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_conversion_dynamic_to_signed
+.SH SYNOPSIS
+.nf
+.B #include <conversion.h>
+.sp
+\fBf_status_t fl_conversion_dynamic_to_signed\fP(
+    \fBconst fl_conversion_data_t \fP\fIdata\fP,
+    \fBconst f_string_static_t    \fP\fIbuffer\fP,
+    \fBf_number_signed_t *const   \fP\fInumber\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert a series of number characters into a f_number_signed_t.
+.PP
+This will stop at one of the following: a non-digit. This will ignore NULL values. This will not process signed statuses (+/-).
+.SH PARAMETERS
+.TP
+.B data
+Conversion data for specifying things such as treating this as a negative number.
+
+.TP
+.B buffer
+The string to convert.
+
+.TP
+.B number
+This will store the value of the converted string. This value is only changed on success.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP if the binary string was converted to an signed long.
+.br
+\fBF_data_not\fP if string starts with a null (length is 0).
+.br
+\fBF_base_not\fP (with error bit) if no supported or valid base unit is provided.
+.br
+\fBF_number\fP (with error bit) if no conversion was made due to non-binary values being found.
+.br
+\fBF_number_decimal\fP (with error bit) if number has a decimal digit.
+.br
+\fBF_number_overflow\fP (with error bit) on integer overflow.
+.br
+\fBF_number_underflow\fP (with error bit) on integer underflow.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_conversion/data/documentation/man/man3/fl_conversion_dynamic_to_signed_detect.3 b/level_1/fl_conversion/data/documentation/man/man3/fl_conversion_dynamic_to_signed_detect.3
new file mode 100644 (file)
index 0000000..5bcb6a3
--- /dev/null
@@ -0,0 +1,59 @@
+.TH fl_conversion_dynamic_to_signed_detect "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_conversion_dynamic_to_signed_detect
+.SH SYNOPSIS
+.nf
+.B #include <conversion.h>
+.sp
+\fBf_status_t fl_conversion_dynamic_to_signed_detect\fP(
+    \fBconst fl_conversion_data_t \fP\fIdata\fP,
+    \fBconst f_string_static_t    \fP\fIbuffer\fP,
+    \fBf_number_signed_t *const   \fP\fInumber\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert a series of positive or negative number characters into an f_number_signed_t.
+.PP
+decimal is used for all other cases.
+.PP
+Leading 0's and whitespace are ignored. Whitespace after the first digit is considered invalid.
+.PP
+This function is similar to strtoll(), but the behavior of error handling and special bases are different. In particular, octals are specified here with '0b' prefix or '0B' prefix instead of the ridiculous '0' prefix.
+.SH PARAMETERS
+.TP
+.B data
+Conversion data for specifying things such as treating this as a negative number. This auto-detects the base and negative, ignoring the base number and negative flag.
+
+.TP
+.B buffer
+The string to convert.
+
+.TP
+.B number
+This will store the value of the converted string. This value is only changed on success.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if string starts with a null (length is 0).
+.br
+\fBF_base_not\fP (with error bit) if no supported or valid base unit is provided.
+.br
+\fBF_complete_not_utf\fP (with error bit) if an incomplete UTF-8 fragment is found.
+.br
+\fBF_number\fP (with error bit) if parameter is not a number.
+.br
+\fBF_number_decimal\fP (with error bit) if number has a decimal digit.
+.br
+\fBF_number_overflow\fP (with error bit) on integer overflow.
+.br
+\fBF_number_underflow\fP (with error bit) on integer underflow.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_conversion/data/documentation/man/man3/fl_conversion_dynamic_to_unsigned.3 b/level_1/fl_conversion/data/documentation/man/man3/fl_conversion_dynamic_to_unsigned.3
new file mode 100644 (file)
index 0000000..d40def1
--- /dev/null
@@ -0,0 +1,51 @@
+.TH fl_conversion_dynamic_to_unsigned "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_conversion_dynamic_to_unsigned
+.SH SYNOPSIS
+.nf
+.B #include <conversion.h>
+.sp
+\fBf_status_t fl_conversion_dynamic_to_unsigned\fP(
+    \fBconst fl_conversion_data_t \fP\fIdata\fP,
+    \fBconst f_string_static_t    \fP\fIbuffer\fP,
+    \fBf_number_unsigned_t *const \fP\fInumber\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert a series of number characters into a f_number_unsigned_t.
+.PP
+This will stop at one of the following: a non-digit. This will ignore NULL values. This will not process signed statuses (+/-).
+.SH PARAMETERS
+.TP
+.B data
+Conversion data for specifying things such as treating this as a negative number.
+
+.TP
+.B buffer
+The string to convert.
+
+.TP
+.B number
+This will store the value of the converted string. This value is only changed on success.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP if the binary string was converted to an unsigned long.
+.br
+\fBF_data_not\fP if string starts with a null (length is 0).
+.br
+\fBF_base_not\fP (with error bit) if no supported or valid base unit is provided.
+.br
+\fBF_number\fP (with error bit) if no conversion was made due to non-binary values being found.
+.br
+\fBF_number_decimal\fP (with error bit) if number has a decimal digit.
+.br
+\fBF_number_overflow\fP (with error bit) on integer overflow.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_conversion/data/documentation/man/man3/fl_conversion_dynamic_to_unsigned_detect.3 b/level_1/fl_conversion/data/documentation/man/man3/fl_conversion_dynamic_to_unsigned_detect.3
new file mode 100644 (file)
index 0000000..1de0810
--- /dev/null
@@ -0,0 +1,61 @@
+.TH fl_conversion_dynamic_to_unsigned_detect "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_conversion_dynamic_to_unsigned_detect
+.SH SYNOPSIS
+.nf
+.B #include <conversion.h>
+.sp
+\fBf_status_t fl_conversion_dynamic_to_unsigned_detect\fP(
+    \fBconst fl_conversion_data_t \fP\fIdata\fP,
+    \fBconst f_string_static_t    \fP\fIbuffer\fP,
+    \fBf_number_unsigned_t *const \fP\fInumber\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert a series of positive number characters into an f_number_unsigned_t.
+.PP
+decimal is used for all other cases.
+.PP
+Leading 0's and whitespace are ignored. Whitespace after the first digit is considered invalid.
+.PP
+This function is similar to strtoull(), but the behavior of error handling and special bases are different. In particular, octals are specified here with '0b' prefix or '0B' prefix instead of the ridiculous '0' prefix. Negative values are reported as such instead of being converted into the unsigned equivalent.
+.SH PARAMETERS
+.TP
+.B data
+Conversion data for specifying things such as treating this as a negative number. This auto-detects the base and negative, ignoring the base number and negative flag.
+
+.TP
+.B buffer
+The string to convert.
+
+.TP
+.B number
+This will store the value of the converted string. This value is only changed on success.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if string starts with a null (length is 0).
+.br
+\fBF_base_not\fP (with error bit) if no supported or valid base unit is provided.
+.br
+\fBF_complete_not_utf\fP (with error bit) if an incomplete UTF-8 fragment is found.
+.br
+\fBF_number\fP (with error bit) if parameter is not a number.
+.br
+\fBF_number_decimal\fP (with error bit) if number has a decimal digit.
+.br
+\fBF_number_negative\fP (with error bit) on negative value.
+.br
+\fBF_number_positive\fP (with error bit) on positive value (has a +, such as '+1', when only '1' is valid here).
+.br
+\fBF_number_overflow\fP (with error bit) on integer overflow.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index d937e2775f00770e15e466a52bbe68d27ae46335..5ab6428a0b36e800a4b67d3eb17017217a358a8c 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library directory.c private-directory.c
 
 build_sources_headers directory.h directory/common.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_1/fl_directory/data/documentation/man/man3/fl_directory_clone.3 b/level_1/fl_directory/data/documentation/man/man3/fl_directory_clone.3
new file mode 100644 (file)
index 0000000..374207c
--- /dev/null
@@ -0,0 +1,59 @@
+.TH fl_directory_clone "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_directory_clone
+.SH SYNOPSIS
+.nf
+.B #include <directory.h>
+.sp
+\fBf_status_t fl_directory_clone\fP(
+    \fBconst f_string_static_t      \fP\fIsource\fP,
+    \fBconst f_string_static_t      \fP\fIdestination\fP,
+    \fBconst fl_directory_recurse_t \fP\fIrecurse\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Copy a directory and its contents, as well as its file mode and possibly the owner and group.
+.PP
+The paths must not contain NULL except for the terminating NULL. The paths must be NULL terminated.
+.PP
+Symbolic links are not followed, they are copied as the symbolic link itself.
+.PP
+This does not copy unknown file types.
+.SH PARAMETERS
+.TP
+.B source
+The source file path. Must be NULL terminated.
+
+.TP
+.B destination
+The destination file path. Must be NULL terminated.
+
+.TP
+.B recurse
+The directory recurse data.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source.used or destination.used is 0.
+.br
+\fBF_directory_not\fP (with error bit) if the source directory does not exist.
+.br
+\fBF_failure\fP (with error bit) for any other failure, failures might be populated with individual status codes.
+.br
+Errors (with error bit) from: f_directory_create().
+.br
+Errors (with error bit) from: f_directory_exists().
+.br
+Errors (with error bit) from: f_file_mode_set().
+.br
+Errors (with error bit) from: f_file_role_change().
+.br
+Errors (with error bit) from: f_file_stat().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_directory/data/documentation/man/man3/fl_directory_clone_content.3 b/level_1/fl_directory/data/documentation/man/man3/fl_directory_clone_content.3
new file mode 100644 (file)
index 0000000..4cc8bbf
--- /dev/null
@@ -0,0 +1,53 @@
+.TH fl_directory_clone_content "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_directory_clone_content
+.SH SYNOPSIS
+.nf
+.B #include <directory.h>
+.sp
+\fBf_status_t fl_directory_clone_content\fP(
+    \fBconst f_string_static_t      \fP\fIsource\fP,
+    \fBconst f_string_static_t      \fP\fIdestination\fP,
+    \fBconst fl_directory_recurse_t \fP\fIrecurse\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Copy a directory contents but not the directory itself, as well as its file mode and possibly the owner and group.
+.PP
+When cloning the contents of a directory, both the source and the destination paths must already exist and be directories, regardless of exclusive boolean.
+.PP
+The paths must not contain NULL except for the terminating NULL. The paths must be NULL terminated.
+.PP
+Symbolic links are not followed, they are copied as the symbolic link itself.
+.PP
+This does not copy unknown file types.
+.SH PARAMETERS
+.TP
+.B source
+The source file path. Must be NULL terminated.
+
+.TP
+.B destination
+The destination file path. Must be NULL terminated.
+
+.TP
+.B recurse
+The directory recurse data.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source.used or destination.used is 0.
+.br
+\fBF_directory_not\fP (with error bit) if either the source or destination directory does not exist.
+.br
+\fBF_failure\fP (with error bit) for any other failure, failures might be populated with individual status codes.
+.br
+Errors (with error bit) from: f_directory_exists().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_directory/data/documentation/man/man3/fl_directory_copy.3 b/level_1/fl_directory/data/documentation/man/man3/fl_directory_copy.3
new file mode 100644 (file)
index 0000000..37bcb99
--- /dev/null
@@ -0,0 +1,66 @@
+.TH fl_directory_copy "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_directory_copy
+.SH SYNOPSIS
+.nf
+.B #include <directory.h>
+.sp
+\fBf_status_t fl_directory_copy\fP(
+    \fBconst f_string_static_t      \fP\fIsource\fP,
+    \fBconst f_string_static_t      \fP\fIdestination\fP,
+    \fBconst f_mode_t               \fP\fImode\fP,
+    \fBconst fl_directory_recurse_t \fP\fIrecurse\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Copy a directory and its contents.
+.PP
+The paths must not contain NULL except for the terminating NULL. The paths must be NULL terminated.
+.PP
+Symbolic links are not followed, they are copied as the symbolic link itself.
+.PP
+This does not copy unknown file types.
+.SH PARAMETERS
+.TP
+.B source
+The source file path. Must be NULL terminated.
+
+.TP
+.B destination
+The destination file path. Must be NULL terminated.
+
+.TP
+.B mode
+The directory modes.
+
+.TP
+.B recurse
+The directory recurse data.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source.used or destination.used is 0.
+.br
+\fBF_directory_found\fP (with error bit) if the destination directory is found and recurse.flag has f_file_stat_flag_exclusive_e.
+.br
+\fBF_directory_not\fP (with error bit) if the source directory does not exist.
+.br
+\fBF_failure\fP (with error bit) for any other failure, failures might be populated with individual status codes.
+.br
+Errors (with error bit) from: f_directory_create().
+.br
+Errors (with error bit) from: f_directory_exists().
+.br
+Errors (with error bit) from: f_file_mode_set().
+.br
+Errors (with error bit) from: f_file_role_change().
+.br
+Errors (with error bit) from: f_file_stat().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_directory/data/documentation/man/man3/fl_directory_copy_content.3 b/level_1/fl_directory/data/documentation/man/man3/fl_directory_copy_content.3
new file mode 100644 (file)
index 0000000..8a5bea1
--- /dev/null
@@ -0,0 +1,58 @@
+.TH fl_directory_copy_content "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_directory_copy_content
+.SH SYNOPSIS
+.nf
+.B #include <directory.h>
+.sp
+\fBf_status_t fl_directory_copy_content\fP(
+    \fBconst f_string_static_t      \fP\fIsource\fP,
+    \fBconst f_string_static_t      \fP\fIdestination\fP,
+    \fBconst f_mode_t               \fP\fImode\fP,
+    \fBconst fl_directory_recurse_t \fP\fIrecurse\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Copy a directory contents.
+.PP
+When copying the contents of a directory but not the directory itself, both the source and the destination paths must already exist and be directories, regardless of exclusive boolean.
+.PP
+The paths must not contain NULL except for the terminating NULL. The paths must be NULL terminated.
+.PP
+Symbolic links are not followed, they are copied as the symbolic link itself.
+.PP
+This does not copy unknown file types.
+.SH PARAMETERS
+.TP
+.B source
+The source file path. Must be NULL terminated.
+
+.TP
+.B destination
+The destination file path. Must be NULL terminated.
+
+.TP
+.B mode
+The directory modes.
+
+.TP
+.B recurse
+The directory recurse data.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source.used or destination.used is 0.
+.br
+\fBF_directory_not\fP (with error bit) if either the source or the destination directory does not exist.
+.br
+\fBF_failure\fP (with error bit) for any other failure, failures might be populated with individual status codes.
+.br
+Errors (with error bit) from: f_directory_exists().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_directory/data/documentation/man/man3/fl_directory_create.3 b/level_1/fl_directory/data/documentation/man/man3/fl_directory_create.3
new file mode 100644 (file)
index 0000000..dda4d40
--- /dev/null
@@ -0,0 +1,66 @@
+.TH fl_directory_create "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_directory_create
+.SH SYNOPSIS
+.nf
+.B #include <directory.h>
+.sp
+\fBf_status_t fl_directory_create\fP(
+    \fBconst f_string_static_t \fP\fIpath\fP,
+    \fBconst mode_t            \fP\fImode\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Create all directories at the given path.
+.PP
+The paths must not contain NULL except for the terminating NULL. The paths must be NULL terminated.
+.SH PARAMETERS
+.TP
+.B path
+The file path to the directory.
+
+.TP
+.B mode
+The directory mode to use when creating. This is applied to all created directories.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_directory_found\fP on success, but the directory already exists.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_directory\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_directory_link_max\fP (with error bit) max links limit reached or exceeded.
+.br
+\fBF_file_found\fP (with error bit) of a directory aleady exists at the path.
+.br
+\fBF_file_found_not\fP (with error bit) if a file within the path is not found (such as a broken symbolic link).
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for removing.
+.br
+\fBF_read_only\fP (with error bit) if file is read-only.
+.br
+\fBF_space_not\fP (with error bit) if file system is out of space (or file system quota is reached).
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_directory/data/documentation/man/man3/fl_directory_list.3 b/level_1/fl_directory/data/documentation/man/man3/fl_directory_list.3
new file mode 100644 (file)
index 0000000..6add29c
--- /dev/null
@@ -0,0 +1,77 @@
+.TH fl_directory_list "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_directory_list
+.SH SYNOPSIS
+.nf
+.B #include <directory.h>
+.sp
+\fBf_status_t fl_directory_list\fP(
+    \fBconst f_string_static_t                                \fP\fIpath\fP,
+    \fBint(*)(const struct dirent *)                          \fP\fIfilter\fP,
+    \fBint(*)(const struct dirent **, const struct dirent **) \fP\fIsort\fP,
+    \fBconst bool                                             \fP\fIdereference\fP,
+    \fBf_directory_listing_t *const                           \fP\fIlisting\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+For some given path, print the names of each file and/or directory inside the directory, stored as a directory listing.
+.PP
+Allows specifying a custom filter and custom sort.
+.SH PARAMETERS
+.TP
+.B path
+Filesystem path to the directory.
+
+.TP
+.B filter
+A filter function of the form: int xxx(const struct direct *). Set to 0 to not use (NULL).
+
+.TP
+.B sort
+A sort function of the form: int xxx(const struct direct *, const struct direct *). Set to 0 to not use (NULL). There are two pre-made libc functions available for this: alphasort() and versionsort().
+
+.TP
+.B dereference
+Set to TRUE to dereferenc symlinks (often is what is desired). Set to FALSE to operate on the symlink itself.
+
+.TP
+.B listing
+Will be populated with the names of all top-level paths found within the given directory.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source.used or destination.used is 0.
+.br
+\fBF_directory_empty\fP if directory is empty.
+.br
+\fBF_directory_descriptor\fP (with error bit) on directory file descriptor error.
+.br
+\fBF_directory_open\fP (with error bit) on directory open error.
+.br
+\fBF_directory_stream\fP (with error bit) on directory stream error.
+.br
+\fBF_directory_supported_not\fP (with error bit) on directory file descriptor not supported.
+.br
+\fBF_failure\fP (with error bit) if failed to read directory information.
+.br
+\fBF_file_descriptor_max\fP (with error bit) if max file descriptors is reached.
+.br
+\fBF_file_open_max\fP (with error bit) too many open files.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if appended string length is too large to store in the buffer.
+.br
+Errors (with error bit) from: f_file_stat_at().
+.br
+Errors (with error bit) from: f_string_dynamics_increase_by().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_directory/data/documentation/man/man3/fl_directory_path_pop.3 b/level_1/fl_directory/data/documentation/man/man3/fl_directory_path_pop.3
new file mode 100644 (file)
index 0000000..9a5d74a
--- /dev/null
@@ -0,0 +1,37 @@
+.TH fl_directory_path_pop "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_directory_path_pop
+.SH SYNOPSIS
+.nf
+.B #include <directory.h>
+.sp
+\fBf_status_t fl_directory_path_pop\fP(
+    \fBf_string_static_t *const \fP\fIpath\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append a path string onto the destination path.
+.PP
+This ensures that there is a trailing '/' after pop. This ignores control characters. This does not dynamically reallocate the string.
+.SH PARAMETERS
+.TP
+.B path
+The path to remove a single directory. This will only be NULL terminated if path string is already NULL terminated.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if appended string length is too large to store in the buffer.
+.br
+Errors (with error bit) from: f_utf_is_control().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_directory/data/documentation/man/man3/fl_directory_path_push.3 b/level_1/fl_directory/data/documentation/man/man3/fl_directory_path_push.3
new file mode 100644 (file)
index 0000000..2cd6a92
--- /dev/null
@@ -0,0 +1,42 @@
+.TH fl_directory_path_push "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_directory_path_push
+.SH SYNOPSIS
+.nf
+.B #include <directory.h>
+.sp
+\fBf_status_t fl_directory_path_push\fP(
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append a path string onto the destination path.
+.PP
+This ensures that there is a leading and trailing '/' from source. This ignores control characters.
+.SH PARAMETERS
+.TP
+.B source
+The path to append onto the destination. This need not be NULL terminated.
+
+.TP
+.B destination
+The destination path to push the path part onto. Any terminating NULLs at the end of the destination string are removed before appending. This will only be NULL terminated if destination string is already NULL terminated.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source.used is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if appended string length is too large to store in the buffer.
+.br
+Errors (with error bit) from: f_utf_is_control().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index ba5c741ad2bbc7568631bde69784761e30ee0bd6..82f3a6f6a11d60397f3700954991446fc86bf514 100644 (file)
@@ -35,6 +35,8 @@ build_sources_library environment.c
 
 build_sources_headers environment.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_1/fl_environment/data/documentation/man/man3/fl_environment_load_name.3 b/level_1/fl_environment/data/documentation/man/man3/fl_environment_load_name.3
new file mode 100644 (file)
index 0000000..711bbfd
--- /dev/null
@@ -0,0 +1,48 @@
+.TH fl_environment_load_name "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_environment_load_name
+.SH SYNOPSIS
+.nf
+.B #include <environment.h>
+.sp
+\fBf_status_t fl_environment_load_name\fP(
+    \fBconst f_string_static_t \fP\fIname\fP,
+    \fBf_string_maps_t *const  \fP\fIenvironment\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provides environment processing functionality, such as environment variable handling. Append the given environment variable name and value pair into the given map.
+.PP
+If the environment variable name is not found, then it is not added to the map. If the environment variable name is found but has an empty value, then it is added to the map with an empty value.
+.PP
+Each name and value in the map is NULL terminated after the name.used or size.used.
+.PP
+This does not check for uniqueness in the map.
+.SH PARAMETERS
+.TP
+.B name
+A string representing the environment variable name.
+
+.TP
+.B environment
+An array of maps generated from the loaded environment variable names.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if names.used is 0.
+.br
+\fBF_exist_not\fP if name does not exist.
+.br
+Errors (with error bit) from: f_environment_get().
+.br
+Errors (with error bit) from: f_string_dynamic_append_nulless().
+.br
+Errors (with error bit) from: f_string_maps_increase_by().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_environment/data/documentation/man/man3/fl_environment_load_names.3 b/level_1/fl_environment/data/documentation/man/man3/fl_environment_load_names.3
new file mode 100644 (file)
index 0000000..839dfb7
--- /dev/null
@@ -0,0 +1,46 @@
+.TH fl_environment_load_names "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_environment_load_names
+.SH SYNOPSIS
+.nf
+.B #include <environment.h>
+.sp
+\fBf_status_t fl_environment_load_names\fP(
+    \fBconst f_string_statics_t \fP\fInames\fP,
+    \fBf_string_maps_t *const   \fP\fIenvironment\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Append the given environment variable name and value pairs into the given map.
+.PP
+If the environment variable name is not found, then it is not added to the map. If the environment variable name is found but has an empty value, then it is added to the map with an empty value.
+.PP
+Each name and value in the map is NULL terminated after the name.used or size.used.
+.PP
+This does not check for uniqueness in the map.
+.SH PARAMETERS
+.TP
+.B names
+An array of valid environment variable names. The strings in the array must be NULL terminated.
+
+.TP
+.B environment
+An array of maps generated from the loaded environment variable names. All environment names loaded are appended to this.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if names.used is 0.
+.br
+Errors (with error bit) from: f_environment_get().
+.br
+Errors (with error bit) from: f_string_dynamic_append_nulless().
+.br
+Errors (with error bit) from: f_string_maps_increase_by().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_environment/data/documentation/man/man3/fl_environment_path_explode.3 b/level_1/fl_environment/data/documentation/man/man3/fl_environment_path_explode.3
new file mode 100644 (file)
index 0000000..8776334
--- /dev/null
@@ -0,0 +1,44 @@
+.TH fl_environment_path_explode "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_environment_path_explode
+.SH SYNOPSIS
+.nf
+.B #include <environment.h>
+.sp
+\fBf_status_t fl_environment_path_explode\fP(
+    \fBconst f_string_static_t    \fP\fIpath\fP,
+    \fBf_string_dynamics_t *const \fP\fIpaths\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Separate a given PATH-style string into multiple separate paths.
+.SH PARAMETERS
+.TP
+.B path
+The string to process that is expected to follow the traditional Linux standard PATH environment variable. Each seperate path is separated by a single ':'. Need not be NULL terminated. NULLs are ignored and are not copied into the exploded paths.
+
+.TP
+.B paths
+All of the strings exploded from PATH. Each exploded path, when not empty, is guaranteed to have a trailing '/'. Each exploded path is not NULL terminated.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_array_too_large\fP (with error bit) if paths array is too large for further addressing.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_environment_get() (only when en_kevux_path_architecture_bits is defined).
+.br
+Errors (with error bit) from: f_string_dynamics_increase().
+.br
+Errors (with error bit) from: f_string_dynamics_increase_by().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_environment/data/documentation/man/man3/fl_environment_path_explode_reverse.3 b/level_1/fl_environment/data/documentation/man/man3/fl_environment_path_explode_reverse.3
new file mode 100644 (file)
index 0000000..fa6822a
--- /dev/null
@@ -0,0 +1,46 @@
+.TH fl_environment_path_explode_reverse "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_environment_path_explode_reverse
+.SH SYNOPSIS
+.nf
+.B #include <environment.h>
+.sp
+\fBf_status_t fl_environment_path_explode_reverse\fP(
+    \fBconst f_string_static_t    \fP\fIpath\fP,
+    \fBf_string_dynamics_t *const \fP\fIpaths\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Separate a given PATH-style string into multiple separate paths.
+.PP
+The paths are created in reverse order.
+.SH PARAMETERS
+.TP
+.B path
+The string to process that is expected to follow the traditional Linux standard PATH environment variable. Each seperate path is separated by a single ':'. Need not be NULL terminated. NULLs are ignored and are not copied into the exploded paths.
+
+.TP
+.B paths
+All of the strings exploded from PATH. Each exploded path, when not empty, is guaranteed to have a trailing '/'. Each exploded path is not NULL terminated.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_array_too_large\fP (with error bit) if paths array is too large for further addressing.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_environment_get() (only when en_kevux_path_architecture_bits is defined).
+.br
+Errors (with error bit) from: f_string_dynamics_increase().
+.br
+Errors (with error bit) from: f_string_dynamics_increase_by().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 639a0c13847d34f3d567f3f20de890bd0df2e354..d429d1a5ee68a1c106339f523c21352b9a2259c3 100644 (file)
@@ -35,6 +35,8 @@ build_libraries-individual_thread -lf_thread
 
 build_sources_headers execute.h execute/common.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index 3d109e5a016c13125b860d1c6b7ea6ba30927dd0..95b8d2945835f31f03513eb886c84e2e28850e84 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library private-fss.c fss/basic.c fss/basic_list.c fss/embedded_li
 
 build_sources_headers fss.h fss/basic.h fss/basic_list.h fss/embedded_list.h fss/extended.h fss/extended_list.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_1/fl_fss/data/documentation/man/man3/fl_fss_basic_content_read.3 b/level_1/fl_fss/data/documentation/man/man3/fl_fss_basic_content_read.3
new file mode 100644 (file)
index 0000000..2812ce1
--- /dev/null
@@ -0,0 +1,75 @@
+.TH fl_fss_basic_content_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_fss_basic_content_read
+.SH SYNOPSIS
+.nf
+.B #include <basic.h>
+.sp
+\fBf_status_t fl_fss_basic_content_read\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_state_t               \fP\fIstate\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP,
+    \fBf_fss_content_t *const  \fP\fIfound\fP,
+    \fBf_fss_delimits_t *const \fP\fIdelimits\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is the fss-0000 implementation. Read an fss-0000 content.
+.PP
+This will record where delimit placeholders exist but will not apply the delimits.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The start/stop location within the buffer to be processed. The start location will be updated as the buffer is being processed. The start location will represent where the read stopped on return. A start location past the stop location or buffer used means that the entire range was processed.
+
+.TP
+.B found
+A set of all locations where a valid content was found.
+
+.TP
+.B delimits
+A delimits array representing where delimits exist within the buffer.
+
+.SH RETURN VALUE
+.PP
+\fBF_fss_found_content\fP on success and content was found (start location is at end of content).
+.br
+\fBF_fss_found_content_not\fP on success and no content was found (start location is after character designating this is not a content).
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer (a valid object is not yet confirmed).
+.br
+\fBF_none_stop\fP on success after reaching stopping point (a valid object is not yet confirmed).
+.br
+\fBF_data_not_eos\fP no objects found after reaching the end of the buffer (essentially only comments are found).
+.br
+\fBF_data_not_stop\fP no data found after reaching stopping point (essentially only comments are found).
+.br
+\fBF_end_not_group_eos\fP if EOS was reached before the a group termination was reached.
+.br
+\fBF_end_not_group_stop\fP if stop point was reached before the a group termination was reached.
+.br
+\fBF_interrupt\fP (with error bit) if stopping due to an interrupt.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_fss_skip_past_delimit().
+.br
+Errors (with error bit) from: f_fss_skip_past_space().
+.br
+Errors (with error bit) from: f_string_ranges_increase().
+.br
+Errors (with error bit) from: f_utf_buffer_increment().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_fss/data/documentation/man/man3/fl_fss_basic_content_write.3 b/level_1/fl_fss/data/documentation/man/man3/fl_fss_basic_content_write.3
new file mode 100644 (file)
index 0000000..065db82
--- /dev/null
@@ -0,0 +1,71 @@
+.TH fl_fss_basic_content_write "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_fss_basic_content_write
+.SH SYNOPSIS
+.nf
+.B #include <basic.h>
+.sp
+\fBf_status_t fl_fss_basic_content_write\fP(
+    \fBconst f_string_static_t   \fP\fIcontent\fP,
+    \fBconst uint8_t             \fP\fIcomplete\fP,
+    \fBf_state_t                 \fP\fIstate\fP,
+    \fBf_string_range_t *const   \fP\fIrange\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write an fss-0000 content from a given string.
+.PP
+This will write the given string range as a valid content. Anything within this range will be escaped as necessary.
+.PP
+The destination string may have NULLs.
+.SH PARAMETERS
+.TP
+.B content
+The string to write as (does not stop at NULLS, they are ignored and not written).
+
+.TP
+.B complete
+If f_fss_complete_none_e, then only the content is written. If f_fss_complete_next_e, then the content followed by any appropriate "next" character separating one content from the next, if applicable. If f_fss_complete_end_e, then the content followed by any appropriate "end" character designating the last content for some object, printing final newline, if applicable. If f_fss_complete_partial_e, this will write any appropriate open and close aspects of this content, except for the final newline. If f_fss_complete_full_e, this will write any appropriate open and close aspects of this content, including the final newline.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The start/stop location within the content string to write as an content.
+
+.TP
+.B destination
+The buffer where the content is written to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer.
+.br
+\fBF_none_stop\fP on success after reaching the range stop.
+.br
+\fBF_data_not_stop\fP no data to write due start location being greater than stop location.
+.br
+\fBF_data_not_eos\fP no data to write due start location being greater than or equal to buffer size.
+.br
+\fBF_interrupt\fP (with error bit) if stopping due to an interrupt.
+.br
+\fBF_none_eol\fP (with error bit) after reaching an EOL, which is not supported by the standard.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_fss_skip_past_delimit().
+.br
+Errors (with error bit) from: f_string_dynamic_increase().
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_fss/data/documentation/man/man3/fl_fss_basic_list_content_read.3 b/level_1/fl_fss/data/documentation/man/man3/fl_fss_basic_list_content_read.3
new file mode 100644 (file)
index 0000000..68a61f1
--- /dev/null
@@ -0,0 +1,86 @@
+.TH fl_fss_basic_list_content_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_fss_basic_list_content_read
+.SH SYNOPSIS
+.nf
+.B #include <basic_list.h>
+.sp
+\fBf_status_t fl_fss_basic_list_content_read\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_state_t               \fP\fIstate\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP,
+    \fBf_fss_content_t *const  \fP\fIfound\fP,
+    \fBf_fss_delimits_t *const \fP\fIdelimits\fP,
+    \fBf_fss_comments_t *const \fP\fIcomments\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is the fss-0002 implementation. Read an fss-0002 content from a given string.
+.PP
+This will record where delimit placeholders exist but will not apply the delimits.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The start/stop location within the buffer to be processed. The start location will be updated as the buffer is being processed. The start location will represent where the read stopped on return. A start location past the stop location or buffer used means that the entire range was processed.
+
+.TP
+.B found
+A set of all locations where a valid content was found.
+
+.TP
+.B delimits
+A delimits array representing where delimits exist within the buffer.
+
+.TP
+.B comments
+An array of ranges representing where comments are found within any valid content. This only stores comments found within valid content only. The comment range will include the trailing newline.
+
+.SH RETURN VALUE
+.PP
+\fBF_fss_found_content\fP on success and content was found (start location is at end of content).
+.br
+\fBF_fss_found_content_not\fP on success and no content was found (start location is after character designating this is not a content).
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer (a valid object is not yet confirmed).
+.br
+\fBF_none_stop\fP on success after reaching stopping point (a valid object is not yet confirmed).
+.br
+\fBF_data_not_eos\fP no objects found after reaching the end of the buffer (essentially only comments are found).
+.br
+\fBF_data_not_stop\fP no data found after reaching stopping point (essentially only comments are found).
+.br
+\fBF_end_not_group_eos\fP if EOS was reached before the a group termination was reached.
+.br
+\fBF_end_not_group_stop\fP if stop point was reached before the a group termination was reached.
+.br
+\fBF_interrupt\fP (with error bit) if stopping due to an interrupt.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_array_lengths_increase().
+.br
+Errors (with error bit) from: f_array_lengths_increase_by().
+.br
+Errors (with error bit) from: f_fss_is_space().
+.br
+Errors (with error bit) from: f_fss_seek_to_eol().
+.br
+Errors (with error bit) from: f_fss_skip_past_delimit().
+.br
+Errors (with error bit) from: f_string_ranges_increase().
+.br
+Errors (with error bit) from: f_utf_buffer_increment().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_fss/data/documentation/man/man3/fl_fss_basic_list_content_write.3 b/level_1/fl_fss/data/documentation/man/man3/fl_fss_basic_list_content_write.3
new file mode 100644 (file)
index 0000000..d048ee6
--- /dev/null
@@ -0,0 +1,84 @@
+.TH fl_fss_basic_list_content_write "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_fss_basic_list_content_write
+.SH SYNOPSIS
+.nf
+.B #include <basic_list.h>
+.sp
+\fBf_status_t fl_fss_basic_list_content_write\fP(
+    \fBconst f_string_static_t   \fP\fIcontent\fP,
+    \fBconst uint8_t             \fP\fIcomplete\fP,
+    \fBconst f_string_static_t  *\fP\fIprepend\fP,
+    \fBf_state_t                 \fP\fIstate\fP,
+    \fBf_string_range_t *const   \fP\fIrange\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write an fss-0002 content from a given string.
+.PP
+This will write the given string range as a valid content. Anything within this range will be escaped as necessary.
+.PP
+The destination string may have NULLs.
+.SH PARAMETERS
+.TP
+.B content
+The string to write as (does not stop at NULLS, they are ignored and not written).
+
+.TP
+.B complete
+If f_fss_complete_none_e, then only the content is written. If f_fss_complete_next_e, then the content followed by any appropriate "next" character separating one content from the next, if applicable. If f_fss_complete_end_e, then the content followed by any appropriate "end" character designating the last content for some object, printing final newline, if applicable. If f_fss_complete_partial_e, this will write any appropriate open and close aspects of this content, except for the final newline. If f_fss_complete_full_e, this will write any appropriate open and close aspects of this content, including the final newline.
+
+.TP
+.B prepend
+A string of whitespace to prepend at the start of each line. This should only be whitespace, anything else could produce invalid content. Set the pointer address to 0 to disable.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The start/stop location within the content string to write as an content.
+
+.TP
+.B destination
+The buffer where the content is written to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eol\fP on success after reaching the end of the line.
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer.
+.br
+\fBF_data_not_stop\fP no data to write due start location being greater than stop location.
+.br
+\fBF_data_not_eos\fP no data to write due start location being greater than or equal to buffer size.
+.br
+\fBF_none_stop\fP on success after reaching stopping point.
+.br
+\fBF_interrupt\fP (with error bit) if stopping due to an interrupt.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_fss_is_graph().
+.br
+Errors (with error bit) from: f_fss_skip_past_delimit().
+.br
+Errors (with error bit) from: f_fss_skip_past_space().
+.br
+Errors (with error bit) from: f_string_dynamic_append().
+.br
+Errors (with error bit) from: f_string_dynamic_increase().
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by().
+.br
+Errors (with error bit) from: f_utf_buffer_increment().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_fss/data/documentation/man/man3/fl_fss_basic_list_object_read.3 b/level_1/fl_fss/data/documentation/man/man3/fl_fss_basic_list_object_read.3
new file mode 100644 (file)
index 0000000..fa1db69
--- /dev/null
@@ -0,0 +1,83 @@
+.TH fl_fss_basic_list_object_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_fss_basic_list_object_read
+.SH SYNOPSIS
+.nf
+.B #include <basic_list.h>
+.sp
+\fBf_status_t fl_fss_basic_list_object_read\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_state_t               \fP\fIstate\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP,
+    \fBf_fss_object_t *const   \fP\fIfound\fP,
+    \fBf_fss_delimits_t *const \fP\fIdelimits\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Read an fss-0002 object.
+.PP
+This will record where delimit placeholders exist but will not apply the delimits.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The start/stop location within the buffer to be processed. The start location will be updated as the buffer is being processed. The start location will represent where the read stopped on return. A start location past the stop location or buffer used means that the entire range was processed.
+
+.TP
+.B found
+A location where a valid object was found.
+
+.TP
+.B delimits
+A delimits array representing where delimits exist within the buffer.
+
+.SH RETURN VALUE
+.PP
+\fBF_fss_found_object\fP on success and object was found (start location is at end of object).
+.br
+\fBF_fss_found_object_not\fP on success and no object was found (start location is after character designating this is not an object).
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer (a valid object is not yet confirmed).
+.br
+\fBF_none_stop\fP on success after reaching stopping point (a valid object is not yet confirmed).
+.br
+\fBF_data_not_eos\fP no objects found after reaching the end of the buffer (essentially only comments are found).
+.br
+\fBF_data_not_stop\fP no data found after reaching stopping point (essentially only comments are found).
+.br
+\fBF_end_not_group_eos\fP if EOS was reached before the a group termination was reached.
+.br
+\fBF_end_not_group_stop\fP if stop point was reached before the a group termination was reached.
+.br
+\fBF_interrupt\fP (with error bit) if stopping due to an interrupt.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_array_lengths_increase_by().
+.br
+Errors (with error bit) from: f_fss_is_graph().
+.br
+Errors (with error bit) from: f_fss_is_space().
+.br
+Errors (with error bit) from: f_fss_is_zero_width().
+.br
+Errors (with error bit) from: f_fss_seek_to_eol().
+.br
+Errors (with error bit) from: f_fss_skip_past_delimit().
+.br
+Errors (with error bit) from: f_fss_skip_past_space().
+.br
+Errors (with error bit) from: f_utf_buffer_increment().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_fss/data/documentation/man/man3/fl_fss_basic_list_object_write.3 b/level_1/fl_fss/data/documentation/man/man3/fl_fss_basic_list_object_write.3
new file mode 100644 (file)
index 0000000..fbeea9d
--- /dev/null
@@ -0,0 +1,77 @@
+.TH fl_fss_basic_list_object_write "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_fss_basic_list_object_write
+.SH SYNOPSIS
+.nf
+.B #include <basic_list.h>
+.sp
+\fBf_status_t fl_fss_basic_list_object_write\fP(
+    \fBconst f_string_static_t   \fP\fIobject\fP,
+    \fBconst uint8_t             \fP\fIcomplete\fP,
+    \fBf_state_t                 \fP\fIstate\fP,
+    \fBf_string_range_t *const   \fP\fIrange\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write an fss-0002 object.
+.PP
+This will write the given string range as a valid object. Anything within this range will be escaped as necessary. This will stop if EOL is reached.
+.PP
+The destination string may have NULLs.
+.SH PARAMETERS
+.TP
+.B object
+The string to write as (does not stop at NULLS, they are ignored and not written).
+
+.TP
+.B complete
+If f_fss_complete_none_e, then only the object name is written. If f_fss_complete_full_e, this will write any appropriate open and close aspects of this object. If f_fss_complete_full_trim_e, this will write any appropriate open and close aspects of this object, but will omit whitespace before and after the object. If f_fss_complete_partial_e, this will write any appropriate open and close aspects of this object. If f_fss_complete_partial_tim, this will write any appropriate open and close aspects of this object, but will omit whitespace before and after the object.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The start/stop location within the object string to write as an object.
+
+.TP
+.B destination
+The buffer where the object is written to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer.
+.br
+\fBF_data_not_stop\fP no data to write due start location being greater than stop location.
+.br
+\fBF_data_not_eos\fP no data to write due start location being greater than or equal to buffer size.
+.br
+\fBF_none_stop\fP on success after reaching stopping point.
+.br
+\fBF_interrupt\fP (with error bit) if stopping due to an interrupt.
+.br
+\fBF_none_eol\fP (with error bit) after reaching an EOL, which is not supported by the standard.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_fss_is_graph().
+.br
+Errors (with error bit) from: f_fss_is_space().
+.br
+Errors (with error bit) from: f_fss_skip_past_delimit().
+.br
+Errors (with error bit) from: f_string_dynamic_increase().
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by().
+.br
+Errors (with error bit) from: f_utf_buffer_increment().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_fss/data/documentation/man/man3/fl_fss_basic_object_read.3 b/level_1/fl_fss/data/documentation/man/man3/fl_fss_basic_object_read.3
new file mode 100644 (file)
index 0000000..2f40af3
--- /dev/null
@@ -0,0 +1,92 @@
+.TH fl_fss_basic_object_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_fss_basic_object_read
+.SH SYNOPSIS
+.nf
+.B #include <basic.h>
+.sp
+\fBf_status_t fl_fss_basic_object_read\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_state_t               \fP\fIstate\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP,
+    \fBf_fss_object_t *const   \fP\fIfound\fP,
+    \fBf_fss_quote_t *const    \fP\fIquote\fP,
+    \fBf_fss_delimits_t *const \fP\fIdelimits\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Read an fss-0000 object.
+.PP
+This will record where delimit placeholders exist but will not apply the delimits.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The start/stop location within the buffer to be processed. The start location will be updated as the buffer is being processed. The start location will represent where the read stopped on return. A start location past the stop location or buffer used means that the entire range was processed.
+
+.TP
+.B found
+A location where a valid object was found.
+
+.TP
+.B quote
+This will store the quote type representing the character to use (from the f_fss_quote_type_*_e). Set pointer address to 0 to not use.
+
+.TP
+.B delimits
+A delimits array representing where delimits exist within the buffer.
+
+.SH RETURN VALUE
+.PP
+\fBF_fss_found_object\fP on success and object was found (start location is at end of object).
+.br
+\fBF_fss_found_object_content_not\fP on success but object ended at the line so there can be no content.
+.br
+\fBF_fss_found_object_not\fP on success and no object was found (start location is after character designating this is not an object).
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer (a valid object is not yet confirmed).
+.br
+\fBF_none_stop\fP on success after reaching stopping point (a valid object is not yet confirmed).
+.br
+\fBF_data_not_eos\fP no objects found after reaching the end of the buffer (essentially only comments are found).
+.br
+\fBF_data_not_stop\fP no data found after reaching stopping point (essentially only comments are found).
+.br
+\fBF_end_not_group_eos\fP if EOS was reached before the a group termination was reached.
+.br
+\fBF_end_not_group_stop\fP if stop point was reached before the a group termination was reached.
+.br
+\fBF_interrupt\fP (with error bit) if stopping due to an interrupt.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_array_lengths_increase().
+.br
+Errors (with error bit) from: f_array_lengths_increase_by().
+.br
+Errors (with error bit) from: f_fss_is_graph().
+.br
+Errors (with error bit) from: f_fss_is_space().
+.br
+Errors (with error bit) from: f_fss_is_zero_width().
+.br
+Errors (with error bit) from: f_fss_seek_to_eol().
+.br
+Errors (with error bit) from: f_fss_skip_past_delimit().
+.br
+Errors (with error bit) from: f_fss_skip_past_space().
+.br
+Errors (with error bit) from: f_utf_buffer_increment().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_fss/data/documentation/man/man3/fl_fss_basic_object_write.3 b/level_1/fl_fss/data/documentation/man/man3/fl_fss_basic_object_write.3
new file mode 100644 (file)
index 0000000..d43d040
--- /dev/null
@@ -0,0 +1,80 @@
+.TH fl_fss_basic_object_write "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_fss_basic_object_write
+.SH SYNOPSIS
+.nf
+.B #include <basic.h>
+.sp
+\fBf_status_t fl_fss_basic_object_write\fP(
+    \fBconst f_string_static_t   \fP\fIobject\fP,
+    \fBconst f_fss_quote_t       \fP\fIquote\fP,
+    \fBconst uint8_t             \fP\fIcomplete\fP,
+    \fBf_state_t                 \fP\fIstate\fP,
+    \fBf_string_range_t *const   \fP\fIrange\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write an fss-0000 object from a given string.
+.PP
+This will write the given string range as a valid object. Anything within this range will be escaped as necessary. This will stop if EOL is reached.
+.PP
+The destination string may have NULLs.
+.SH PARAMETERS
+.TP
+.B object
+The string to write as (does not stop at NULLS, they are ignored and not written).
+
+.TP
+.B quote
+If 0, then double quotes are auto-inserted, when required. Otherwise, this is the type of quote to wrap the object in when writing.
+
+.TP
+.B complete
+If f_fss_complete_none_e, then only the object name is written. If f_fss_complete_full_e, this will write any appropriate open and close aspects of this object. If f_fss_complete_full_trim_e, this will write any appropriate open and close aspects of this object, but will omit whitespace before and after the object (inside the quotes). If f_fss_complete_partial_e, this will write any appropriate open and close aspects of this object. If f_fss_complete_partial_tim, this will write any appropriate open and close aspects of this object, but will omit whitespace before and after the object (inside the quotes).
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The start/stop location within the object string to write as an object.
+
+.TP
+.B destination
+The buffer where the object is written to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer.
+.br
+\fBF_none_stop\fP on success after reaching the range stop.
+.br
+\fBF_data_not_stop\fP no data to write due start location being greater than stop location.
+.br
+\fBF_data_not_eos\fP no data to write due start location being greater than or equal to buffer size.
+.br
+\fBF_interrupt\fP (with error bit) if stopping due to an interrupt.
+.br
+\fBF_none_eol\fP (with error bit) after reaching an EOL, which is not supported by the standard.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_fss_is_space().
+.br
+Errors (with error bit) from: f_fss_skip_past_delimit().
+.br
+Errors (with error bit) from: f_fss_skip_past_space().
+.br
+Errors (with error bit) from: f_string_dynamic_increase().
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_fss/data/documentation/man/man3/fl_fss_embedded_list_content_read.3 b/level_1/fl_fss/data/documentation/man/man3/fl_fss_embedded_list_content_read.3
new file mode 100644 (file)
index 0000000..e6e31bb
--- /dev/null
@@ -0,0 +1,90 @@
+.TH fl_fss_embedded_list_content_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_fss_embedded_list_content_read
+.SH SYNOPSIS
+.nf
+.B #include <embedded_list.h>
+.sp
+\fBf_status_t fl_fss_embedded_list_content_read\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_state_t               \fP\fIstate\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP,
+    \fBf_fss_nest_t *const     \fP\fIfound\fP,
+    \fBf_fss_delimits_t *const \fP\fIdelimits\fP,
+    \fBf_fss_comments_t *const \fP\fIcomments\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is the fss-0008 implementation. Read an fss-0008 content.
+.PP
+This will record where delimit placeholders exist but will not apply the delimits.
+.PP
+This operates on the assumption that found.array[0].array[found.array[0].used].content is the current content being processed. Therefore the object for this content will also need to be found.array[0].array[found.array[0].used].object. The object at depth 0 will not be populated, but all nested objects will be populated at their respective depth along with the content.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The start/stop location within the buffer to be processed. The start location will be updated as the buffer is being processed. The start location will represent where the read stopped on return. A start location past the stop location or buffer used means that the entire range was processed.
+
+.TP
+.B found
+A set of all locations where a valid content was found.
+
+.TP
+.B delimits
+A delimits array representing where delimits exist within the buffer.
+
+.TP
+.B comments
+An array of ranges representing where comments are found within any valid content. This only stores comments found within valid content only. The comment range will include the trailing newline.
+
+.SH RETURN VALUE
+.PP
+\fBF_fss_found_content\fP on success and content was found (start location is at end of content).
+.br
+\fBF_fss_found_content_not\fP on success and no content was found (start location is after character designating this is not a content).
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer (a valid object is not yet confirmed).
+.br
+\fBF_none_stop\fP on success after reaching stopping point (a valid object is not yet confirmed).
+.br
+\fBF_data_not_eos\fP no objects found after reaching the end of the buffer (essentially only comments are found).
+.br
+\fBF_data_not_stop\fP no data found after reaching stopping point (essentially only comments are found).
+.br
+\fBF_end_not_group_eos\fP if EOS was reached before the a group termination was reached.
+.br
+\fBF_end_not_group_stop\fP if stop point was reached before the a group termination was reached.
+.br
+\fBF_interrupt\fP (with error bit) if stopping due to an interrupt.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_array_lengths_increase().
+.br
+Errors (with error bit) from: f_array_lengths_increase_by().
+.br
+Errors (with error bit) from: f_fss_is_space().
+.br
+Errors (with error bit) from: f_fss_nest_increase().
+.br
+Errors (with error bit) from: f_fss_seek_to_eol().
+.br
+Errors (with error bit) from: f_fss_skip_past_delimit().
+.br
+Errors (with error bit) from: f_string_ranges_increase().
+.br
+Errors (with error bit) from: f_utf_buffer_increment().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_fss/data/documentation/man/man3/fl_fss_embedded_list_content_write.3 b/level_1/fl_fss/data/documentation/man/man3/fl_fss_embedded_list_content_write.3
new file mode 100644 (file)
index 0000000..52a92f3
--- /dev/null
@@ -0,0 +1,87 @@
+.TH fl_fss_embedded_list_content_write "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_fss_embedded_list_content_write
+.SH SYNOPSIS
+.nf
+.B #include <embedded_list.h>
+.sp
+\fBf_status_t fl_fss_embedded_list_content_write\fP(
+    \fBconst f_string_static_t        \fP\fIcontent\fP,
+    \fBconst uint8_t                  \fP\fIcomplete\fP,
+    \fBconst f_string_static_t *const \fP\fIprepend\fP,
+    \fBconst f_string_ranges_t *const \fP\fIignore\fP,
+    \fBf_state_t                      \fP\fIstate\fP,
+    \fBf_string_range_t *const        \fP\fIrange\fP,
+    \fBf_string_dynamic_t *const      \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write an fss-0008 content from a given string.
+.PP
+This will write the given string range as a valid content. Anything within this range will be escaped as necessary.
+.PP
+The destination string may have NULLs.
+.SH PARAMETERS
+.TP
+.B content
+The string to write as (does not stop at NULLS, they are ignored and not written).
+
+.TP
+.B complete
+If f_fss_complete_none_e, then only the content is written. If f_fss_complete_next_e, then the content followed by any appropriate "next" character separating one content from the next, if applicable. If f_fss_complete_end_e, then the content followed by any appropriate "end" character designating the last content for some object, printing final newline, if applicable. If f_fss_complete_partial_e, this will write any appropriate open and close aspects of this content, except for the final newline. If f_fss_complete_full_e, this will write any appropriate open and close aspects of this content, including the final newline.
+
+.TP
+.B prepend
+A string of whitespace to prepend at the start of each line. This should only be whitespace, anything else could produce invalid content. Set the pointer address to 0 to disable.
+
+.TP
+.B ignore
+An optional list of ranges within the string to ignore. These ranges are only checked/ignored if there is a valid nested object open or a valid nested object close. Any valid nested object open or valid nested object close inside an ingore range will not be escaped. Set the pointer address to 0 to disable.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The start/stop location within the content string to write as an content.
+
+.TP
+.B destination
+The buffer where the content is written to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer.
+.br
+\fBF_data_not_stop\fP no data to write due start location being greater than stop location.
+.br
+\fBF_data_not_eos\fP no data to write due start location being greater than or equal to buffer size.
+.br
+\fBF_none_stop\fP on success after reaching stopping point.
+.br
+\fBF_interrupt\fP (with error bit) if stopping due to an interrupt.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_fss_is_graph().
+.br
+Errors (with error bit) from: f_fss_skip_past_delimit().
+.br
+Errors (with error bit) from: f_fss_skip_past_space().
+.br
+Errors (with error bit) from: f_string_dynamic_append().
+.br
+Errors (with error bit) from: f_string_dynamic_increase().
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by().
+.br
+Errors (with error bit) from: f_utf_buffer_increment().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_fss/data/documentation/man/man3/fl_fss_embedded_list_object_read.3 b/level_1/fl_fss/data/documentation/man/man3/fl_fss_embedded_list_object_read.3
new file mode 100644 (file)
index 0000000..dba72f7
--- /dev/null
@@ -0,0 +1,83 @@
+.TH fl_fss_embedded_list_object_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_fss_embedded_list_object_read
+.SH SYNOPSIS
+.nf
+.B #include <embedded_list.h>
+.sp
+\fBf_status_t fl_fss_embedded_list_object_read\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_state_t               \fP\fIstate\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP,
+    \fBf_fss_object_t *const   \fP\fIfound\fP,
+    \fBf_fss_delimits_t *const \fP\fIdelimits\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Read an fss-0008 object.
+.PP
+This will record where delimit placeholders exist but will not apply the delimits.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The start/stop location within the buffer to be processed. The start location will be updated as the buffer is being processed. The start location will represent where the read stopped on return. A start location past the stop location or buffer used means that the entire range was processed.
+
+.TP
+.B found
+A location where a valid object was found.
+
+.TP
+.B delimits
+A delimits array representing where delimits exist within the buffer.
+
+.SH RETURN VALUE
+.PP
+\fBF_fss_found_object\fP on success and object was found (start location is at end of object).
+.br
+\fBF_fss_found_object_not\fP on success and no object was found (start location is after character designating this is not an object).
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer (a valid object is not yet confirmed).
+.br
+\fBF_none_stop\fP on success after reaching stopping point (a valid object is not yet confirmed).
+.br
+\fBF_data_not_eos\fP no objects found after reaching the end of the buffer (essentially only comments are found).
+.br
+\fBF_data_not_stop\fP no data found after reaching stopping point (essentially only comments are found).
+.br
+\fBF_end_not_group_eos\fP if EOS was reached before the a group termination was reached.
+.br
+\fBF_end_not_group_stop\fP if stop point was reached before the a group termination was reached.
+.br
+\fBF_interrupt\fP (with error bit) if stopping due to an interrupt.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_array_lengths_increase_by().
+.br
+Errors (with error bit) from: f_fss_is_graph().
+.br
+Errors (with error bit) from: f_fss_is_space().
+.br
+Errors (with error bit) from: f_fss_is_zero_width().
+.br
+Errors (with error bit) from: f_fss_seek_to_eol().
+.br
+Errors (with error bit) from: f_fss_skip_past_delimit().
+.br
+Errors (with error bit) from: f_fss_skip_past_space().
+.br
+Errors (with error bit) from: f_utf_buffer_increment().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_fss/data/documentation/man/man3/fl_fss_embedded_list_object_write.3 b/level_1/fl_fss/data/documentation/man/man3/fl_fss_embedded_list_object_write.3
new file mode 100644 (file)
index 0000000..51fe2d4
--- /dev/null
@@ -0,0 +1,77 @@
+.TH fl_fss_embedded_list_object_write "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_fss_embedded_list_object_write
+.SH SYNOPSIS
+.nf
+.B #include <embedded_list.h>
+.sp
+\fBf_status_t fl_fss_embedded_list_object_write\fP(
+    \fBconst f_string_static_t   \fP\fIobject\fP,
+    \fBconst uint8_t             \fP\fIcomplete\fP,
+    \fBf_state_t                 \fP\fIstate\fP,
+    \fBf_string_range_t *const   \fP\fIrange\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write an fss-0008 object from a given string.
+.PP
+This will write the given string range as a valid object. Anything within this range will be escaped as necessary. This will stop if EOL is reached.
+.PP
+The destination string may have NULLs.
+.SH PARAMETERS
+.TP
+.B object
+The string to write as (does not stop at NULLS, they are ignored and not written).
+
+.TP
+.B complete
+If f_fss_complete_none_e, then only the object name is written. If f_fss_complete_full_e, this will write any appropriate open and close aspects of this object. If f_fss_complete_full_trim_e, this will write any appropriate open and close aspects of this object, but will omit whitespace before and after the object. If f_fss_complete_partial_e, this will write any appropriate open and close aspects of this object. If f_fss_complete_partial_tim, this will write any appropriate open and close aspects of this object, but will omit whitespace before and after the object.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The start/stop location within the object string to write as an object.
+
+.TP
+.B destination
+The buffer where the object is written to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer.
+.br
+\fBF_data_not_stop\fP no data to write due start location being greater than stop location.
+.br
+\fBF_data_not_eos\fP no data to write due start location being greater than or equal to buffer size.
+.br
+\fBF_none_stop\fP on success after reaching stopping point.
+.br
+\fBF_interrupt\fP (with error bit) if stopping due to an interrupt.
+.br
+\fBF_none_eol\fP (with error bit) after reaching an EOL, which is not supported by the standard.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_fss_is_graph().
+.br
+Errors (with error bit) from: f_fss_is_space().
+.br
+Errors (with error bit) from: f_fss_skip_past_delimit().
+.br
+Errors (with error bit) from: f_string_dynamic_increase().
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by().
+.br
+Errors (with error bit) from: f_utf_buffer_increment().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_fss/data/documentation/man/man3/fl_fss_extended_content_read.3 b/level_1/fl_fss/data/documentation/man/man3/fl_fss_extended_content_read.3
new file mode 100644 (file)
index 0000000..c129293
--- /dev/null
@@ -0,0 +1,88 @@
+.TH fl_fss_extended_content_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_fss_extended_content_read
+.SH SYNOPSIS
+.nf
+.B #include <extended.h>
+.sp
+\fBf_status_t fl_fss_extended_content_read\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_state_t               \fP\fIstate\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP,
+    \fBf_fss_content_t *const  \fP\fIfound\fP,
+    \fBf_fss_quotes_t *const   \fP\fIquotes\fP,
+    \fBf_fss_delimits_t *const \fP\fIdelimits\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is the fss-0001 implementation. Read an fss-0001 content.
+.PP
+This will record where delimit placeholders exist but will not apply the delimits.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The start/stop location within the buffer to be processed. The start location will be updated as the buffer is being processed. The start location will represent where the read stopped on return. A start location past the stop location or buffer used means that the entire range was processed.
+
+.TP
+.B found
+A set of all locations where a valid content was found.
+
+.TP
+.B quotes
+This will store the quote types representing the character to use (from the f_fss_quote_type_*_e). Set pointer address to 0 to not use.
+
+.TP
+.B delimits
+A delimits array representing where delimits exist within the buffer.
+
+.SH RETURN VALUE
+.PP
+\fBF_fss_found_content\fP on success and content was found (start location is at end of content).
+.br
+\fBF_fss_found_content_not\fP on success and no content was found (start location is after character designating this is not a content).
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer (a valid object is not yet confirmed).
+.br
+\fBF_none_stop\fP on success after reaching stopping point (a valid object is not yet confirmed).
+.br
+\fBF_data_not_eos\fP no objects found after reaching the end of the buffer (essentially only comments are found).
+.br
+\fBF_data_not_stop\fP no data found after reaching stopping point (essentially only comments are found).
+.br
+\fBF_end_not_group_eos\fP if EOS was reached before the a group termination was reached.
+.br
+\fBF_end_not_group_stop\fP if stop point was reached before the a group termination was reached.
+.br
+\fBF_interrupt\fP (with error bit) if stopping due to an interrupt.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_array_lengths_increase().
+.br
+Errors (with error bit) from: f_array_lengths_increase_by().
+.br
+Errors (with error bit) from: f_fss_is_graph().
+.br
+Errors (with error bit) from: f_fss_is_space().
+.br
+Errors (with error bit) from: f_fss_is_zero_width().
+.br
+Errors (with error bit) from: f_fss_skip_past_delimit().
+.br
+Errors (with error bit) from: f_fss_skip_past_space().
+.br
+Errors (with error bit) from: f_utf_buffer_increment().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_fss/data/documentation/man/man3/fl_fss_extended_content_write.3 b/level_1/fl_fss/data/documentation/man/man3/fl_fss_extended_content_write.3
new file mode 100644 (file)
index 0000000..5d51381
--- /dev/null
@@ -0,0 +1,83 @@
+.TH fl_fss_extended_content_write "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_fss_extended_content_write
+.SH SYNOPSIS
+.nf
+.B #include <extended.h>
+.sp
+\fBf_status_t fl_fss_extended_content_write\fP(
+    \fBconst f_string_static_t   \fP\fIcontent\fP,
+    \fBconst f_fss_quote_t       \fP\fIquoted\fP,
+    \fBconst uint8_t             \fP\fIcomplete\fP,
+    \fBf_state_t                 \fP\fIstate\fP,
+    \fBf_string_range_t *const   \fP\fIrange\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write an fss-0001 content from a given string.
+.PP
+This will write the given string range as a valid content. Anything within this range will be escaped as necessary.
+.PP
+The destination string may have NULLs.
+.SH PARAMETERS
+.TP
+.B content
+The string to write as (does not stop at NULLS, they are ignored and not written).
+
+.TP
+.B quoted
+If 0, then double quotes are auto-inserted, when required. Otherwise, this is the type of quote to wrap the object in when writing.
+
+.TP
+.B complete
+If f_fss_complete_none_e, then only the content is written. If f_fss_complete_next_e, then the content followed by any appropriate "next" character separating one content from the next, if applicable. If f_fss_complete_end_e, then the content followed by any appropriate "end" character designating the last content for some object, printing final newline, if applicable. If f_fss_complete_partial_e, this will write any appropriate open and close aspects of this content, except for the final newline. If f_fss_complete_full_e, this will write any appropriate open and close aspects of this content, including the final newline.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The start/stop location within the content string to write as an content.
+
+.TP
+.B destination
+The buffer where the content is written to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer.
+.br
+\fBF_none_stop\fP on success after reaching the range stop.
+.br
+\fBF_data_not_stop\fP no data to write due start location being greater than stop location.
+.br
+\fBF_data_not_eos\fP no data to write due start location being greater than or equal to buffer size.
+
+.br
+\fBF_interrupt\fP (with error bit) if stopping due to an interrupt.
+.br
+\fBF_none_eol\fP (with error bit) after reaching an EOL, which is not supported by the standard.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_fss_is_space().
+.br
+Errors (with error bit) from: f_fss_skip_past_delimit().
+.br
+Errors (with error bit) from: f_fss_skip_past_space().
+.br
+Errors (with error bit) from: f_string_dynamic_increase().
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by().
+.br
+Errors (with error bit) from: f_utf_buffer_increment().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_fss/data/documentation/man/man3/fl_fss_extended_list_content_read.3 b/level_1/fl_fss/data/documentation/man/man3/fl_fss_extended_list_content_read.3
new file mode 100644 (file)
index 0000000..26068d2
--- /dev/null
@@ -0,0 +1,88 @@
+.TH fl_fss_extended_list_content_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_fss_extended_list_content_read
+.SH SYNOPSIS
+.nf
+.B #include <extended_list.h>
+.sp
+\fBf_status_t fl_fss_extended_list_content_read\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_state_t               \fP\fIstate\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP,
+    \fBf_fss_content_t *const  \fP\fIfound\fP,
+    \fBf_fss_delimits_t *const \fP\fIdelimits\fP,
+    \fBf_fss_comments_t *const \fP\fIcomments\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is the fss-0003 implementation. Read an fss-0003 content.
+.PP
+This will record where delimit placeholders exist but will not apply the delimits.
+.PP
+This does not utilize recursion and has a max content depth of 1, see fss-0008 (Embedded List) for that purpose.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The start/stop location within the buffer to be processed. The start location will be updated as the buffer is being processed. The start location will represent where the read stopped on return. A start location past the stop location or buffer used means that the entire range was processed.
+
+.TP
+.B found
+A set of all locations where a valid content was found.
+
+.TP
+.B delimits
+A delimits array representing where delimits exist within the buffer.
+
+.TP
+.B comments
+An array of ranges representing where comments are found within any valid content. This only stores comments found within valid content only. The comment range will include the trailing newline.
+
+.SH RETURN VALUE
+.PP
+\fBF_fss_found_content\fP on success and content was found (start location is at end of content).
+.br
+\fBF_fss_found_content_not\fP on success and no content was found (start location is after character designating this is not a content).
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer (a valid content is not yet confirmed).
+.br
+\fBF_none_stop\fP on success after reaching stopping point (a valid content is not yet confirmed).
+.br
+\fBF_data_not_eos\fP no content found after reaching the end of the buffer (essentially only comments are found).
+.br
+\fBF_data_not_stop\fP no content found after reaching stopping point (essentially only comments are found).
+.br
+\fBF_end_not_group_eos\fP if EOS was reached before the a group termination was reached.
+.br
+\fBF_end_not_group_stop\fP if stop point was reached before the a group termination was reached.
+.br
+\fBF_interrupt\fP (with error bit) if stopping due to an interrupt.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_array_lengths_increase().
+.br
+Errors (with error bit) from: f_array_lengths_increase_by().
+.br
+Errors (with error bit) from: f_fss_is_space().
+.br
+Errors (with error bit) from: f_fss_seek_to_eol().
+.br
+Errors (with error bit) from: f_fss_skip_past_delimit().
+.br
+Errors (with error bit) from: f_string_ranges_increase().
+.br
+Errors (with error bit) from: f_utf_buffer_increment().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_fss/data/documentation/man/man3/fl_fss_extended_list_content_write.3 b/level_1/fl_fss/data/documentation/man/man3/fl_fss_extended_list_content_write.3
new file mode 100644 (file)
index 0000000..65d2e23
--- /dev/null
@@ -0,0 +1,87 @@
+.TH fl_fss_extended_list_content_write "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_fss_extended_list_content_write
+.SH SYNOPSIS
+.nf
+.B #include <extended_list.h>
+.sp
+\fBf_status_t fl_fss_extended_list_content_write\fP(
+    \fBconst f_string_static_t        \fP\fIcontent\fP,
+    \fBconst uint8_t                  \fP\fIcomplete\fP,
+    \fBconst f_string_static_t *const \fP\fIprepend\fP,
+    \fBconst f_string_ranges_t *const \fP\fIignore\fP,
+    \fBf_state_t                      \fP\fIstate\fP,
+    \fBf_string_range_t *const        \fP\fIrange\fP,
+    \fBf_string_dynamic_t *const      \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write an fss-0003 content from a given string.
+.PP
+This will write the given string range as a valid content. Anything within this range will be escaped as necessary.
+.PP
+The destination string may have NULLs.
+.SH PARAMETERS
+.TP
+.B content
+The string to write as (does not stop at NULLS, they are ignored and not written).
+
+.TP
+.B complete
+If f_fss_complete_none_e, then only the content is written. If f_fss_complete_next_e, then the content followed by any appropriate "next" character separating one content from the next, if applicable. If f_fss_complete_end_e, then the content followed by any appropriate "end" character designating the last content for some object, printing final newline, if applicable. If f_fss_complete_partial_e, this will write any appropriate open and close aspects of this content, except for the final newline. If f_fss_complete_full_e, this will write any appropriate open and close aspects of this content, including the final newline.
+
+.TP
+.B prepend
+A string of whitespace to prepend at the start of each line. This should only be whitespace, anything else could produce invalid content. Set the pointer address to 0 to disable.
+
+.TP
+.B ignore
+An optional list of ranges within the string to ignore. These ranges are only checked/ignored if there is a valid nested object open or a valid nested object close. Any valid nested object open or valid nested object close inside an ingore range will not be escaped. Set the pointer address to 0 to disable.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The start/stop location within the content string to write as an content.
+
+.TP
+.B destination
+The buffer where the content is written to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer.
+.br
+\fBF_data_not_stop\fP no data to write due start location being greater than stop location.
+.br
+\fBF_data_not_eos\fP no data to write due start location being greater than or equal to buffer size.
+.br
+\fBF_none_stop\fP on success after reaching stopping point.
+.br
+\fBF_interrupt\fP (with error bit) if stopping due to an interrupt.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_fss_is_graph().
+.br
+Errors (with error bit) from: f_fss_skip_past_delimit().
+.br
+Errors (with error bit) from: f_fss_skip_past_space().
+.br
+Errors (with error bit) from: f_string_dynamic_append().
+.br
+Errors (with error bit) from: f_string_dynamic_increase().
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by().
+.br
+Errors (with error bit) from: f_utf_buffer_increment().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_fss/data/documentation/man/man3/fl_fss_extended_list_object_read.3 b/level_1/fl_fss/data/documentation/man/man3/fl_fss_extended_list_object_read.3
new file mode 100644 (file)
index 0000000..1711403
--- /dev/null
@@ -0,0 +1,83 @@
+.TH fl_fss_extended_list_object_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_fss_extended_list_object_read
+.SH SYNOPSIS
+.nf
+.B #include <extended_list.h>
+.sp
+\fBf_status_t fl_fss_extended_list_object_read\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_state_t               \fP\fIstate\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP,
+    \fBf_fss_object_t *const   \fP\fIfound\fP,
+    \fBf_fss_delimits_t *const \fP\fIdelimits\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Read an fss-0003 object.
+.PP
+This will record where delimit placeholders exist but will not apply the delimits.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The start/stop location within the buffer to be processed. The start location will be updated as the buffer is being processed. The start location will represent where the read stopped on return. A start location past the stop location or buffer used means that the entire range was processed.
+
+.TP
+.B found
+A location where a valid object was found.
+
+.TP
+.B delimits
+A delimits array representing where delimits exist within the buffer.
+
+.SH RETURN VALUE
+.PP
+\fBF_fss_found_object\fP on success and object was found (start location is at end of object).
+.br
+\fBF_fss_found_object_not\fP on success and no object was found (start location is after character designating this is not an object).
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer (a valid object is not yet confirmed).
+.br
+\fBF_none_stop\fP on success after reaching stopping point (a valid object is not yet confirmed).
+.br
+\fBF_data_not_eos\fP no objects found after reaching the end of the buffer (essentially only comments are found).
+.br
+\fBF_data_not_stop\fP no data found after reaching stopping point (essentially only comments are found).
+.br
+\fBF_end_not_group_eos\fP if EOS was reached before the a group termination was reached.
+.br
+\fBF_end_not_group_stop\fP if stop point was reached before the a group termination was reached.
+.br
+\fBF_interrupt\fP (with error bit) if stopping due to an interrupt.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_array_lengths_increase_by().
+.br
+Errors (with error bit) from: f_fss_is_graph().
+.br
+Errors (with error bit) from: f_fss_is_space().
+.br
+Errors (with error bit) from: f_fss_is_zero_width().
+.br
+Errors (with error bit) from: f_fss_seek_to_eol().
+.br
+Errors (with error bit) from: f_fss_skip_past_delimit().
+.br
+Errors (with error bit) from: f_fss_skip_past_space().
+.br
+Errors (with error bit) from: f_utf_buffer_increment().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_fss/data/documentation/man/man3/fl_fss_extended_list_object_write.3 b/level_1/fl_fss/data/documentation/man/man3/fl_fss_extended_list_object_write.3
new file mode 100644 (file)
index 0000000..b27651b
--- /dev/null
@@ -0,0 +1,77 @@
+.TH fl_fss_extended_list_object_write "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_fss_extended_list_object_write
+.SH SYNOPSIS
+.nf
+.B #include <extended_list.h>
+.sp
+\fBf_status_t fl_fss_extended_list_object_write\fP(
+    \fBconst f_string_static_t   \fP\fIobject\fP,
+    \fBconst uint8_t             \fP\fIcomplete\fP,
+    \fBf_state_t                 \fP\fIstate\fP,
+    \fBf_string_range_t *const   \fP\fIrange\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write an fss-0003 object from a given string.
+.PP
+This will write the given string range as a valid object. Anything within this range will be escaped as necessary. This will stop if EOL is reached.
+.PP
+The destination string may have NULLs.
+.SH PARAMETERS
+.TP
+.B object
+The string to write as (does not stop at NULLS, they are ignored and not written).
+
+.TP
+.B complete
+If f_fss_complete_none_e, then only the object name is written. If f_fss_complete_full_e, this will write any appropriate open and close aspects of this object. If f_fss_complete_full_trim_e, this will write any appropriate open and close aspects of this object, but will omit whitespace before and after the object. If f_fss_complete_partial_e, this will write any appropriate open and close aspects of this object. If f_fss_complete_partial_tim, this will write any appropriate open and close aspects of this object, but will omit whitespace before and after the object.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The start/stop location within the object string to write as an object.
+
+.TP
+.B destination
+The buffer where the object is written to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer.
+.br
+\fBF_data_not_stop\fP no data to write due start location being greater than stop location.
+.br
+\fBF_data_not_eos\fP no data to write due start location being greater than or equal to buffer size.
+.br
+\fBF_none_stop\fP on success after reaching stopping point.
+.br
+\fBF_interrupt\fP (with error bit) if stopping due to an interrupt.
+.br
+\fBF_none_eol\fP (with error bit) after reaching an EOL, which is not supported by the standard.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_fss_is_graph().
+.br
+Errors (with error bit) from: f_fss_is_space().
+.br
+Errors (with error bit) from: f_fss_skip_past_delimit().
+.br
+Errors (with error bit) from: f_string_dynamic_increase().
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by().
+.br
+Errors (with error bit) from: f_utf_buffer_increment().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_fss/data/documentation/man/man3/fl_fss_extended_object_read.3 b/level_1/fl_fss/data/documentation/man/man3/fl_fss_extended_object_read.3
new file mode 100644 (file)
index 0000000..9da402f
--- /dev/null
@@ -0,0 +1,94 @@
+.TH fl_fss_extended_object_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_fss_extended_object_read
+.SH SYNOPSIS
+.nf
+.B #include <extended.h>
+.sp
+\fBf_status_t fl_fss_extended_object_read\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_state_t               \fP\fIstate\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP,
+    \fBf_fss_object_t *const   \fP\fIfound\fP,
+    \fBf_fss_quote_t *const    \fP\fIquoted\fP,
+    \fBf_fss_delimits_t *const \fP\fIdelimits\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Read an fss-0001 object.
+.PP
+This will record where delimit placeholders exist but will not apply the delimits.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The start/stop location within the buffer to be processed. The start location will be updated as the buffer is being processed. The start location will represent where the read stopped on return. A start location past the stop location or buffer used means that the entire range was processed.
+
+.TP
+.B found
+A location where a valid object was found.
+
+.TP
+.B quoted
+This will store the quote type representing the character to use (from the f_fss_quote_type_*_e). Set pointer address to 0 to not use.
+
+.TP
+.B delimits
+A delimits array representing where delimits exist within the buffer.
+
+.SH RETURN VALUE
+.PP
+\fBF_fss_found_object\fP on success and object was found (start location is at end of object).
+.br
+\fBF_fss_found_object_content_not\fP on success but object ended at the line so there can be no content.
+.br
+\fBF_fss_found_object_not\fP on success and no object was found (start location is after character designating this is not an object).
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer (a valid object is not yet confirmed).
+.br
+\fBF_none_stop\fP on success after reaching stopping point (a valid object is not yet confirmed).
+.br
+\fBF_data_not_eos\fP no objects found after reaching the end of the buffer (essentially only comments are found).
+.br
+\fBF_data_not_stop\fP no data found after reaching stopping point (essentially only comments are found).
+.br
+\fBF_end_not_group_eos\fP if EOS was reached before the a group termination was reached.
+.br
+\fBF_end_not_group_stop\fP if stop point was reached before the a group termination was reached.
+.br
+\fBF_interrupt\fP (with error bit) if stopping due to an interrupt.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_array_lengths_increase().
+.br
+Errors (with error bit) from: f_array_lengths_increase_by().
+.br
+Errors (with error bit) from: f_fss_is_graph().
+.br
+Errors (with error bit) from: f_fss_is_space().
+.br
+Errors (with error bit) from: f_fss_is_zero_width().
+.br
+Errors (with error bit) from: f_fss_skip_past_delimit().
+.br
+Errors (with error bit) from: f_fss_skip_past_space().
+.br
+Errors (with error bit) from: f_string_ranges_increase().
+.br
+Errors (with error bit) from: f_uint8s_increase().
+.br
+Errors (with error bit) from: f_utf_buffer_increment().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_fss/data/documentation/man/man3/fl_fss_extended_object_write.3 b/level_1/fl_fss/data/documentation/man/man3/fl_fss_extended_object_write.3
new file mode 100644 (file)
index 0000000..344b40d
--- /dev/null
@@ -0,0 +1,80 @@
+.TH fl_fss_extended_object_write "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_fss_extended_object_write
+.SH SYNOPSIS
+.nf
+.B #include <extended.h>
+.sp
+\fBf_status_t fl_fss_extended_object_write\fP(
+    \fBconst f_string_static_t   \fP\fIobject\fP,
+    \fBconst f_fss_quote_t       \fP\fIquoted\fP,
+    \fBconst uint8_t             \fP\fIcomplete\fP,
+    \fBf_state_t                 \fP\fIstate\fP,
+    \fBf_string_range_t *const   \fP\fIrange\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write an fss-0001 object from a given string.
+.PP
+This will write the given string range as a valid object. Anything within this range will be escaped as necessary. This will stop if EOL is reached.
+.PP
+The destination string may have NULLs.
+.SH PARAMETERS
+.TP
+.B object
+The string to write as (does not stop at NULLS, they are ignored and not written).
+
+.TP
+.B quoted
+If 0, then double quotes are auto-inserted, when required. Otherwise, this is the type of quote to wrap the object in when writing.
+
+.TP
+.B complete
+If f_fss_complete_none_e, then only the object name is written. If f_fss_complete_full_e, this will write any appropriate open and close aspects of this object. If f_fss_complete_partial_e, this will write any appropriate open and close aspects of this object.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The start/stop location within the object string to write as an object.
+
+.TP
+.B destination
+The buffer where the object is written to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer.
+.br
+\fBF_none_stop\fP on success after reaching the range stop.
+.br
+\fBF_data_not_stop\fP no data to write due start location being greater than stop location.
+.br
+\fBF_data_not_eos\fP no data to write due start location being greater than or equal to buffer size.
+.br
+\fBF_interrupt\fP (with error bit) if stopping due to an interrupt.
+.br
+\fBF_none_eol\fP (with error bit) after reaching an EOL, which is not supported by the standard.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_fss_is_space().
+.br
+Errors (with error bit) from: f_fss_skip_past_delimit().
+.br
+Errors (with error bit) from: f_fss_skip_past_space().
+.br
+Errors (with error bit) from: f_string_dynamic_increase().
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index 5f5b0ae38679d53647b865662f97cd3afaeddd65..498afb89664502c7f908232d14a671ec713fb7d9 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library iki.c
 
 build_sources_headers iki.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_1/fl_iki/data/documentation/man/man3/fl_iki_read.3 b/level_1/fl_iki/data/documentation/man/man3/fl_iki_read.3
new file mode 100644 (file)
index 0000000..dec45c4
--- /dev/null
@@ -0,0 +1,64 @@
+.TH fl_iki_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_iki_read
+.SH SYNOPSIS
+.nf
+.B #include <iki.h>
+.sp
+\fBf_status_t fl_iki_read\fP(
+    \fBconst f_state_t          \fP\fIstate\fP,
+    \fBf_string_static_t *const \fP\fIbuffer\fP,
+    \fBf_string_range_t *const  \fP\fIrange\fP,
+    \fBf_iki_data_t *const      \fP\fIdata\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provides a Wiki-Like syntax meant to be much simpler.
+.PP
+This simpler Wiki-Like syntax, called Iki, focuses just on simply adding context. The context itself is not explicitly defined but a few common standards are provided. Read all IKI Vocabulary and Content in the given range of the given buffer.
+.PP
+This does not verify if any vocabulary name is known. This only finds complete vocabulary names and their respective content.
+.SH PARAMETERS
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations.
+
+.TP
+.B buffer
+The string to process.
+
+.TP
+.B range
+The start/stop location within the buffer to be processed. The start location will be updated as the buffer is being processed. The start location will represent where the read stopped on return. A start location past the stop location or buffer used means that the entire range was processed.
+
+.TP
+.B data
+The IKI data.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success and an IKI vocabulary name was found.
+.br
+\fBF_none_stop\fP on success and an IKI vocabulary name was found and stop point was reached.
+.br
+\fBF_none_eos\fP on success and an IKI vocabulary name was found and end of string was reached.
+.br
+\fBF_complete_not_utf_eos\fP on success and EOS was reached, but at an incomplete UTF-8 sequence.
+.br
+\fBF_complete_not_utf_stop\fP on success and stop point was reached, but at an incomplete UTF-8 sequence.
+.br
+\fBF_data_not_eos\fP on success and EOS was reached, but there were no IKI vocabularie names found.
+.br
+\fBF_data_not_stop\fP on success and stop point was reached, but there were no IKI vocabularie names found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Success from: f_iki_read().
+.br
+Errors (with error bit) from: f_iki_read().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index a09b58891692fb02f38f941a3946da58d8f4fec4..b3c519a4feb8e520cfe294dcc4fc320dcb8601ea 100644 (file)
@@ -442,7 +442,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
@@ -482,7 +482,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
@@ -523,7 +523,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
@@ -608,7 +608,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
@@ -649,7 +649,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
@@ -692,7 +692,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
@@ -781,7 +781,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
@@ -824,7 +824,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
@@ -872,7 +872,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
@@ -971,7 +971,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
@@ -1019,7 +1019,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
@@ -1064,7 +1064,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
@@ -1157,7 +1157,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
@@ -1202,7 +1202,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
@@ -1254,7 +1254,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
@@ -1361,7 +1361,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
@@ -1413,7 +1413,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
@@ -1464,7 +1464,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
@@ -1565,7 +1565,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
@@ -1614,7 +1614,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
@@ -1665,7 +1665,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
@@ -1769,7 +1769,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
@@ -1820,7 +1820,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
@@ -1867,7 +1867,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
@@ -1963,7 +1963,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
@@ -2010,7 +2010,7 @@ extern "C" {
  *   F_utf_not (with error bit) if character is an invalid UTF-8 character.
  *
  *   Errors (with error bit) from: f_utf_is_combining().
- *   Errors (with error bit) from: f_utf_is_valid()
+ *   Errors (with error bit) from: f_utf_is_valid().
  *   Errors (with error bit) from: f_utf_is_whitespace().
  *
  * @see fputc_unlocked()
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index f300c258288d12fe536dc1ed254dc6f84a292a02..5032e4e4a5ba9f73ef15d1ea202044f9bf588772 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library print.c private-print.c print/common.c
 
 build_sources_headers print.h print/common.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_format.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_format.3
new file mode 100644 (file)
index 0000000..6d2cfb3
--- /dev/null
@@ -0,0 +1,100 @@
+.TH fl_print_format "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_format
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_format\fP(
+    \fBconst f_string_t \fP\fIstring\fP,
+    \fBFILE *const      \fP\fIstream\fP,
+    \fB...              \fP\fI\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provides some standard printing functions not available in a libc.
+.PP
+Functions provided here are UTF-8 aware. A formatted print function similar to (but not the same as) the c-library fprintf() function.
+.PP
+This function attempts to operate as closely to how fprintf() operates, however, there are notable differences.
+.PP
+This formatted print provides replacement variables for specific types of the FLL project, such f_string_static_t. There is support for safe printing where certain control characters or invalid UTF-8 sequences are not directly printed. There is support for color context printing. There is support for more digit base forms than those provided by fprintf() such as base-2 (binary) or base-12 (duodecimal).
+.PP
+The reserved formatting character is only the '' character, which may be escaped by a second '' character. This '' character designates the start of a format flag sequence which must be ended by another '' or a format character. A '' at the end of the string is considered invalid.
+.PP
+Each formatting flags is followed by basic flag or base flag and end on a type flag. The basic, base, and type format flags are represented by a discrete set of reserved characters.
+.PP
+Each basic format flags may be specified in any order but must be specified before the type flag. The order in which basic format flags are processed in regards parameters is a present order irrespective to the order specified. The basic format flags "/", ";", and ":" are examples of this.
+.PP
+"G": Round and convert to notation of either decimal or exponent.
+.PP
+The default format is decimal: [-]ddd.ddd.
+.PP
+The case-sensitivity of above, such as 'e' vs 'E,' does not replace or relate to the case-sensitivity meaning of 'd' or 'D'. Instead, when 'e' is specified 'e' is used (such as such as [-]d.ddde±dd), but when 'E' is specified, then 'E' is used (such as [-]d.dddE±dd).
+.PP
+Note: Currently the float/double implementation does not support the notation modes except integer (default) or hexidecimal. This is not intended but is simply a result of the temporary use of sprintf() to perform these operations. Once a custom implementation is provided, replacing snprintf(), then this can properly support the notation modes. Therefore, this function is supposed to support notation modes and does not yet do this (/
+.PP
+This "%$" sequence is used to prevent characters from being interpreted. For example, consider "%de" vs "%d%$e". The first case "%de" is interpretted as a double using the "e" notation. The second case "%d%$e" is interpretted as a double followed by the letter "e".
+.PP
+For these basic format flags ("/", ";", and ":"), the order is always processed as: 1) static/dynamic string. 2) partial range. 3) ignore at. 4) ignore in.
+.PP
+hexidecimal: 0x/0X, representing base-16 units.
+.PP
+When printing digits, using lowercase designates to print alphabetic digits in lowercase and using uppercase designates to print alphabetic digits in uppercase.
+.PP
+To keep the design simple, this does not support index position variable replacement like fprintf() does (such as '%1$', '%2$', etc..).
+.PP
+".*", For number-based values, designates that the precision is specified in the parameter (order is: (precision, value), but if *.* is specified, then order is: (width, precision, value)).
+.PP
+"_": Display digits in Hexidecimal notation.
+.PP
+"%": Use left-justification.
+.PP
+"un", "UN": Type is a f_number_unsigned_t digit (which by default is what f_array_length_t is a type of).
+.PP
+"�": Unknown/Invalid.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The formatted string to process and output. This is a NULL terminated string.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.TP
+.B
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_eos\fP (with error bit) on EOS reached.
+.br
+\fBF_output\fP (with error bit) on failure to print to the output file.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_valid_not\fP (with error bit) on invalid syntax (such as terminating the string on a single '').
+.br
+Errors (with error bit) from: f_conversion_number_signed_print().
+.br
+Errors (with error bit) from: f_conversion_number_unsigned_print().
+.br
+Errors (with error bit) from: f_print_dynamic().
+.br
+Errors (with error bit) from: f_print_dynamic_raw().
+.br
+Errors (with error bit) from: f_print_dynamic_safely().
+.br
+Errors (with error bit) from: f_print_safely().
+.br
+Errors (with error bit) from: f_print_terminated().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_format_convert.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_format_convert.3
new file mode 100644 (file)
index 0000000..bf27b5a
--- /dev/null
@@ -0,0 +1,74 @@
+.TH fl_print_format_convert "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_format_convert
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_string_t fl_print_format_convert\fP(
+    \fBconst f_string_t  \fP\fIstring\fP,
+    \fBFILE *const       \fP\fIstream\fP,
+    \fBva_list           \fP\fIap\fP,
+    \fBf_status_t *const \fP\fIstatus\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert and print a single part of a formatted string represented by the ''.
+.PP
+This should be called after each first '' is encountered. This should return only after a single '' group is fully processed, end of current is reached, or an error occurs.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.PP
+The status parameter will be set as follows:
+.SH PARAMETERS
+.TP
+.B string
+The current character position within the string. This pointer might be updated by this function.
+
+.TP
+.B stream
+The file stream to stream to, including standard streams such as stdout and stderr.
+
+.TP
+.B ap
+The variable arguments list.
+
+.TP
+.B status
+The status is stored here rather then via the return.
+
+.SH RETURN VALUE
+.PP
+This returns a string at either the start position (if nothing done or an error occurred) or at the character last processed. The caller is expected to increment past this if they wish to continue processing the string.
+.br
+\fBF_none\fP on success.
+.br
+\fBF_output\fP (with error bit) on failure to print to the output file.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+\fBF_valid_not\fP (with error bit) on invalid syntax (such as terminating the string on a single '').
+.PP
+Success from: f_print_dynamic(). Success from: f_print_dynamic_raw(). Success from: f_print_dynamic_safely(). Success from: f_print_safely(). Success from: f_print_terminated().
+.br
+Errors (with error bit) from: f_conversion_number_signed_print().
+.br
+Errors (with error bit) from: f_conversion_number_unsigned_print().
+.br
+Errors (with error bit) from: f_print_dynamic().
+.br
+Errors (with error bit) from: f_print_dynamic_raw().
+.br
+Errors (with error bit) from: f_print_dynamic_safely().
+.br
+Errors (with error bit) from: f_print_safely().
+.br
+Errors (with error bit) from: f_print_terminated().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_string_va.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_string_va.3
new file mode 100644 (file)
index 0000000..a27b573
--- /dev/null
@@ -0,0 +1,63 @@
+.TH fl_print_string_va "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_string_va
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_string_va\fP(
+    \fBconst f_string_t \fP\fIstring\fP,
+    \fBFILE *const      \fP\fIstream\fP,
+    \fBva_list          \fP\fIap\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+A formatted print function similar to (but not the same as) the c-library vfprintf() function.
+.PP
+This is identical to fl_print_format() except it accepts a va_list as a variable instead of as "...".
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The formatted string to process and output.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.TP
+.B ap
+The variable list. The va_start(ap, string) and va_end(ap) is required to be called outside this function.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_eos\fP (with error bit) on EOS reached.
+.br
+\fBF_output\fP (with error bit) on failure to print to the output file.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_valid_not\fP (with error bit) on invalid syntax (such as terminating the string on a single '').
+.br
+Errors (with error bit) from: f_conversion_number_signed_print().
+.br
+Errors (with error bit) from: f_conversion_number_unsigned_print().
+.br
+Errors (with error bit) from: f_print_dynamic().
+.br
+Errors (with error bit) from: f_print_dynamic_raw().
+.br
+Errors (with error bit) from: f_print_dynamic_safely().
+.br
+Errors (with error bit) from: f_print_safely().
+.br
+Errors (with error bit) from: f_print_terminated().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim.3
new file mode 100644 (file)
index 0000000..2611a8d
--- /dev/null
@@ -0,0 +1,59 @@
+.TH fl_print_trim "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim\fP(
+    \fBconst f_string_t       \fP\fIstring\fP,
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBFILE *const            \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a string, stripping leading and trailing whitespace.
+.PP
+Except for leading/trailing whitespace, the string is printed as-is without interpretation.
+.PP
+Will not stop at NULL. Will not print NULL.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_complete_not_utf_stop\fP (with error bit) if character is an incomplete UTF-8 fragment at end of the string.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid().
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_dynamic.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_dynamic.3
new file mode 100644 (file)
index 0000000..92bacf7
--- /dev/null
@@ -0,0 +1,56 @@
+.TH fl_print_trim_dynamic "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_dynamic
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_dynamic\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a dynamic string, stripping leading and trailing whitespace.
+.PP
+Except for leading/trailing whitespace, the string is printed as-is without interpretation.
+.PP
+Will not stop at NULL. Will not print NULL. Will print the entire dynamic string, except for leading/trailing whitespace.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_complete_not_utf_stop\fP (with error bit) if character is an incomplete UTF-8 fragment at end of the string.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid()
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_dynamic_partial.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_dynamic_partial.3
new file mode 100644 (file)
index 0000000..4043586
--- /dev/null
@@ -0,0 +1,61 @@
+.TH fl_print_trim_dynamic_partial "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_dynamic_partial
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_dynamic_partial\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a partial dynamic string, stripping leading and trailing whitespace.
+.PP
+Except for leading/trailing whitespace, the string is printed as-is without interpretation.
+.PP
+Will not stop at NULL. Will not print NULL. Will print the only the buffer range specified by range, except for leading/trailing whitespace.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_complete_not_utf_stop\fP (with error bit) if character is an incomplete UTF-8 fragment at end of the string.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid().
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_dynamic_partial_raw.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_dynamic_partial_raw.3
new file mode 100644 (file)
index 0000000..ca38f47
--- /dev/null
@@ -0,0 +1,59 @@
+.TH fl_print_trim_dynamic_partial_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_dynamic_partial_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_dynamic_partial_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a partial dynamic string, stripping leading and trailing whitespace.
+.PP
+Except for leading/trailing whitespace, the string is printed as-is without interpretation.
+.PP
+Will not stop at NULL. Will print NULL. Will print the only the buffer range specified by range, except for leading/trailing whitespace.
+.PP
+All UTF-8 characters, invalid or not, are printed as is, except for trimmed characters. Invalid UTF-8 characters are not considered whitespace for the purpose of trimming.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_dynamic_partial_raw_safely.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_dynamic_partial_raw_safely.3
new file mode 100644 (file)
index 0000000..71f2245
--- /dev/null
@@ -0,0 +1,61 @@
+.TH fl_print_trim_dynamic_partial_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_dynamic_partial_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_dynamic_partial_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a partial dynamic string, stripping leading and trailing whitespace (and NULLs).
+.PP
+This is essentually a "safe" print that also prints NULL (except for trimmed NULLs).
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will print NULL (that are not trimmed). Will print the only the buffer range specified by range, except for leading/trailing whitespace.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid()
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_dynamic_partial_safely.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_dynamic_partial_safely.3
new file mode 100644 (file)
index 0000000..7ebe052
--- /dev/null
@@ -0,0 +1,59 @@
+.TH fl_print_trim_dynamic_partial_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_dynamic_partial_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_dynamic_partial_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a partial dynamic string, stripping leading and trailing whitespace.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will not print NULL. Will print the only the buffer range specified by range, except for leading/trailing whitespace.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid()
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_dynamic_raw.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_dynamic_raw.3
new file mode 100644 (file)
index 0000000..e349583
--- /dev/null
@@ -0,0 +1,54 @@
+.TH fl_print_trim_dynamic_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_dynamic_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_dynamic_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a dynamic string, stripping leading and trailing whitespace.
+.PP
+Except for leading/trailing whitespace, the string is printed as-is without interpretation.
+.PP
+Will not stop at NULL. Will print NULL. Will print the entire dynamic string, except for leading/trailing whitespace.
+.PP
+All UTF-8 characters, invalid or not, are printed as is, except for trimmed characters. Invalid UTF-8 characters are not considered whitespace for the purpose of trimming.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_dynamic_raw_safely.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_dynamic_raw_safely.3
new file mode 100644 (file)
index 0000000..5993e47
--- /dev/null
@@ -0,0 +1,56 @@
+.TH fl_print_trim_dynamic_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_dynamic_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_dynamic_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a dynamic string, stripping leading and trailing whitespace (and NULLs).
+.PP
+This is essentually a "safe" print that also prints NULL (except for trimmed NULLs).
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will print NULL (that are not trimmed). Will print the entire dynamic string, except for leading/trailing whitespace.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid()
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_dynamic_safely.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_dynamic_safely.3
new file mode 100644 (file)
index 0000000..75ca76a
--- /dev/null
@@ -0,0 +1,54 @@
+.TH fl_print_trim_dynamic_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_dynamic_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_dynamic_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a dynamic string, stripping leading and trailing whitespace.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will not print NULL. Will print the entire dynamic string, except for leading/trailing whitespace.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid()
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except.3
new file mode 100644 (file)
index 0000000..598e4ba
--- /dev/null
@@ -0,0 +1,71 @@
+.TH fl_print_trim_except "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_except
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_except\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a string, stripping leading and trailing whitespace.
+.PP
+Except for leading/trailing whitespace, the string is printed as-is without interpretation.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except_at array.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_complete_not_utf_stop\fP (with error bit) if character is an incomplete UTF-8 fragment at end of the string.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid()
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_dynamic.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_dynamic.3
new file mode 100644 (file)
index 0000000..836449c
--- /dev/null
@@ -0,0 +1,61 @@
+.TH fl_print_trim_except_dynamic "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_except_dynamic
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_except_dynamic\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a dynamic string, stripping leading and trailing whitespace.
+.PP
+Except for leading/trailing whitespace, the string is printed as-is without interpretation.
+.PP
+Will not stop at NULL. Will not print NULL. Will print the entire dynamic string, except for leading/trailing whitespace. Will not print any 1-byte character at a location specified in except_at array.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_complete_not_utf_stop\fP (with error bit) if character is an incomplete UTF-8 fragment at end of the string.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid()
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_dynamic_partial.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_dynamic_partial.3
new file mode 100644 (file)
index 0000000..f9a389e
--- /dev/null
@@ -0,0 +1,66 @@
+.TH fl_print_trim_except_dynamic_partial "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_except_dynamic_partial
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_except_dynamic_partial\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a partial dynamic string, stripping leading and trailing whitespace.
+.PP
+Except for leading/trailing whitespace, the string is printed as-is without interpretation.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except array. Will print the only the buffer range specified by range, except for leading/trailing whitespace.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_complete_not_utf_stop\fP (with error bit) if character is an incomplete UTF-8 fragment at end of the string.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid()
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_dynamic_partial_raw.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_dynamic_partial_raw.3
new file mode 100644 (file)
index 0000000..18e9e52
--- /dev/null
@@ -0,0 +1,64 @@
+.TH fl_print_trim_except_dynamic_partial_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_except_dynamic_partial_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_except_dynamic_partial_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a partial dynamic string, stripping leading and trailing whitespace.
+.PP
+Except for leading/trailing whitespace, the string is printed as-is without interpretation.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except array. Will print the only the buffer range specified by range, except for leading/trailing whitespace.
+.PP
+All UTF-8 characters, invalid or not, are printed as is, except for trimmed characters. Invalid UTF-8 characters are not considered whitespace for the purpose of trimming.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_dynamic_partial_raw_safely.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_dynamic_partial_raw_safely.3
new file mode 100644 (file)
index 0000000..c8a7556
--- /dev/null
@@ -0,0 +1,66 @@
+.TH fl_print_trim_except_dynamic_partial_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_except_dynamic_partial_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_except_dynamic_partial_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a partial dynamic string, stripping leading and trailing whitespace (and NULLs).
+.PP
+This is essentually a "safe" print that also prints NULL (except for trimmed NULLs).
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will print NULL (that are not trimmed). Will not print any 1-byte character at a location specified in except array. Will print the only the buffer range specified by range, except for leading/trailing whitespace.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid()
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_dynamic_partial_safely.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_dynamic_partial_safely.3
new file mode 100644 (file)
index 0000000..f867845
--- /dev/null
@@ -0,0 +1,64 @@
+.TH fl_print_trim_except_dynamic_partial_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_except_dynamic_partial_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_except_dynamic_partial_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a partial dynamic string, stripping leading and trailing whitespace.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except array. Will print the only the buffer range specified by range, except for leading/trailing whitespace.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid()
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_dynamic_raw.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_dynamic_raw.3
new file mode 100644 (file)
index 0000000..f0ed690
--- /dev/null
@@ -0,0 +1,59 @@
+.TH fl_print_trim_except_dynamic_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_except_dynamic_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_except_dynamic_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a dynamic string, stripping leading and trailing whitespace.
+.PP
+Except for leading/trailing whitespace, the string is printed as-is without interpretation.
+.PP
+Will not stop at NULL. Will print NULL. Will print the entire dynamic string, except for leading/trailing whitespace. Will not print any 1-byte character at a location specified in except_at array.
+.PP
+All UTF-8 characters, invalid or not, are printed as is, except for trimmed characters. Invalid UTF-8 characters are not considered whitespace for the purpose of trimming.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_dynamic_raw_safely.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_dynamic_raw_safely.3
new file mode 100644 (file)
index 0000000..6ba8f3d
--- /dev/null
@@ -0,0 +1,61 @@
+.TH fl_print_trim_except_dynamic_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_except_dynamic_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_except_dynamic_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a dynamic string, stripping leading and trailing whitespace (and NULLs).
+.PP
+This is essentually a "safe" print that also prints NULL (except for trimmed NULLs).
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will print NULL (that are not trimmed). Will print the entire dynamic string, except for leading/trailing whitespace. Will not print any 1-byte character at a location specified in except_at array.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid()
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_dynamic_safely.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_dynamic_safely.3
new file mode 100644 (file)
index 0000000..cbfe116
--- /dev/null
@@ -0,0 +1,59 @@
+.TH fl_print_trim_except_dynamic_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_except_dynamic_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_except_dynamic_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a dynamic string, stripping leading and trailing whitespace.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will not print NULL. Will print the entire dynamic string, except for leading/trailing whitespace. Will not print any 1-byte character at a location specified in except_at array.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid()
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in.3
new file mode 100644 (file)
index 0000000..444672e
--- /dev/null
@@ -0,0 +1,76 @@
+.TH fl_print_trim_except_in "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_except_in
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_except_in\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a string, stripping leading and trailing whitespace.
+.PP
+Except for leading/trailing whitespace, the string is printed as-is without interpretation.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_complete_not_utf_stop\fP (with error bit) if character is an incomplete UTF-8 fragment at end of the string.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid()
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_dynamic.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_dynamic.3
new file mode 100644 (file)
index 0000000..7bc0071
--- /dev/null
@@ -0,0 +1,66 @@
+.TH fl_print_trim_except_in_dynamic "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_except_in_dynamic
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_except_in_dynamic\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a dynamic string, stripping leading and trailing whitespace.
+.PP
+Except for leading/trailing whitespace, the string is printed as-is without interpretation.
+.PP
+Will not stop at NULL. Will not print NULL. Will print the entire dynamic string, except for leading/trailing whitespace. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_complete_not_utf_stop\fP (with error bit) if character is an incomplete UTF-8 fragment at end of the string.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid()
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_dynamic_partial.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_dynamic_partial.3
new file mode 100644 (file)
index 0000000..64b7c39
--- /dev/null
@@ -0,0 +1,71 @@
+.TH fl_print_trim_except_in_dynamic_partial "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_except_in_dynamic_partial
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_except_in_dynamic_partial\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a partial dynamic string, stripping leading and trailing whitespace.
+.PP
+Except for leading/trailing whitespace, the string is printed as-is without interpretation.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print the only the buffer range specified by range, except for leading/trailing whitespace.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_complete_not_utf_stop\fP (with error bit) if character is an incomplete UTF-8 fragment at end of the string.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid()
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_dynamic_partial_raw.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_dynamic_partial_raw.3
new file mode 100644 (file)
index 0000000..3501408
--- /dev/null
@@ -0,0 +1,69 @@
+.TH fl_print_trim_except_in_dynamic_partial_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_except_in_dynamic_partial_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_except_in_dynamic_partial_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a partial dynamic string, stripping leading and trailing whitespace.
+.PP
+Except for leading/trailing whitespace, the string is printed as-is without interpretation.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print the only the buffer range specified by range, except for leading/trailing whitespace.
+.PP
+All UTF-8 characters, invalid or not, are printed as is, except for trimmed characters. Invalid UTF-8 characters are not considered whitespace for the purpose of trimming.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_dynamic_partial_raw_safely.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_dynamic_partial_raw_safely.3
new file mode 100644 (file)
index 0000000..5075bbe
--- /dev/null
@@ -0,0 +1,71 @@
+.TH fl_print_trim_except_in_dynamic_partial_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_except_in_dynamic_partial_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_except_in_dynamic_partial_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a partial dynamic string, stripping leading and trailing whitespace (and NULLs).
+.PP
+This is essentually a "safe" print that also prints NULL (except for trimmed NULLs).
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will print NULL (that are not trimmed). Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print the only the buffer range specified by range, except for leading/trailing whitespace.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid()
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_dynamic_partial_safely.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_dynamic_partial_safely.3
new file mode 100644 (file)
index 0000000..36085bd
--- /dev/null
@@ -0,0 +1,69 @@
+.TH fl_print_trim_except_in_dynamic_partial_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_except_in_dynamic_partial_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_except_in_dynamic_partial_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a partial dynamic string, stripping leading and trailing whitespace.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array. Will print the only the buffer range specified by range, except for leading/trailing whitespace.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid()
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_dynamic_raw.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_dynamic_raw.3
new file mode 100644 (file)
index 0000000..f3aeafa
--- /dev/null
@@ -0,0 +1,64 @@
+.TH fl_print_trim_except_in_dynamic_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_except_in_dynamic_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_except_in_dynamic_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a dynamic string, stripping leading and trailing whitespace.
+.PP
+Except for leading/trailing whitespace, the string is printed as-is without interpretation.
+.PP
+Will not stop at NULL. Will print NULL. Will print the entire dynamic string, except for leading/trailing whitespace. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array.
+.PP
+All UTF-8 characters, invalid or not, are printed as is, except for trimmed characters. Invalid UTF-8 characters are not considered whitespace for the purpose of trimming.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_dynamic_raw_safely.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_dynamic_raw_safely.3
new file mode 100644 (file)
index 0000000..f45f269
--- /dev/null
@@ -0,0 +1,66 @@
+.TH fl_print_trim_except_in_dynamic_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_except_in_dynamic_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_except_in_dynamic_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a dynamic string, stripping leading and trailing whitespace (and NULLs).
+.PP
+This is essentually a "safe" print that also prints NULL (except for trimmed NULLs).
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will print NULL (that are not trimmed). Will print the entire dynamic string, except for leading/trailing whitespace. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid()
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_dynamic_safely.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_dynamic_safely.3
new file mode 100644 (file)
index 0000000..89eba5a
--- /dev/null
@@ -0,0 +1,64 @@
+.TH fl_print_trim_except_in_dynamic_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_except_in_dynamic_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_except_in_dynamic_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a dynamic string, stripping leading and trailing whitespace.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will not print NULL. Will print the entire dynamic string, except for leading/trailing whitespace. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid()
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_raw.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_raw.3
new file mode 100644 (file)
index 0000000..724a3ae
--- /dev/null
@@ -0,0 +1,74 @@
+.TH fl_print_trim_except_in_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_except_in_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_except_in_raw\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a string, stripping leading and trailing whitespace.
+.PP
+Except for leading/trailing whitespace, the string is printed as-is without interpretation.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array.
+.PP
+All UTF-8 characters, invalid or not, are printed as is, except for trimmed characters. Invalid UTF-8 characters are not considered whitespace for the purpose of trimming.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_raw_safely.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_raw_safely.3
new file mode 100644 (file)
index 0000000..c9d6b6b
--- /dev/null
@@ -0,0 +1,76 @@
+.TH fl_print_trim_except_in_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_except_in_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_except_in_raw_safely\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a string, stripping leading and trailing whitespace (and NULLs).
+.PP
+This is essentually a "safe" print that also prints NULL (except for trimmed NULLs).
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will print NULL (that are not trimmed). Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid()
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_safely.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_in_safely.3
new file mode 100644 (file)
index 0000000..2d7ff49
--- /dev/null
@@ -0,0 +1,74 @@
+.TH fl_print_trim_except_in_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_except_in_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_except_in_safely\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a string, stripping leading and trailing whitespace.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except_at array. Will not print any 1-byte character within the ranges specified in except_in array.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid()
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_raw.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_raw.3
new file mode 100644 (file)
index 0000000..426f743
--- /dev/null
@@ -0,0 +1,69 @@
+.TH fl_print_trim_except_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_except_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_except_raw\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a string, stripping leading and trailing whitespace.
+.PP
+Except for leading/trailing whitespace, the string is printed as-is without interpretation.
+.PP
+Will not stop at NULL. Will print NULL. Will not print any 1-byte character at a location specified in except_at array.
+.PP
+All UTF-8 characters, invalid or not, are printed as is, except for trimmed characters. Invalid UTF-8 characters are not considered whitespace for the purpose of trimming.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_raw_safely.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_raw_safely.3
new file mode 100644 (file)
index 0000000..14898cd
--- /dev/null
@@ -0,0 +1,71 @@
+.TH fl_print_trim_except_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_except_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_except_raw_safely\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a string, stripping leading and trailing whitespace (and NULLs).
+.PP
+This is essentually a "safe" print that also prints NULL (except for trimmed NULLs).
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will print NULL (that are not trimmed). Will not print any 1-byte character at a location specified in except_at array.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid()
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_safely.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_except_safely.3
new file mode 100644 (file)
index 0000000..31e66ec
--- /dev/null
@@ -0,0 +1,69 @@
+.TH fl_print_trim_except_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_except_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_except_safely\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBFILE *const             \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a string, stripping leading and trailing whitespace.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will not print NULL. Will not print any 1-byte character at a location specified in except_at array.
+.PP
+NULL characters are treated as whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid()
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_raw.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_raw.3
new file mode 100644 (file)
index 0000000..c4eb05a
--- /dev/null
@@ -0,0 +1,57 @@
+.TH fl_print_trim_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_raw\fP(
+    \fBconst f_string_t       \fP\fIstring\fP,
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBFILE *const            \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a string, stripping leading and trailing whitespace.
+.PP
+Except for leading/trailing whitespace, the string is printed as-is without interpretation.
+.PP
+Will not stop at NULL. Will print NULL.
+.PP
+All UTF-8 characters, invalid or not, are printed as is, except for trimmed characters. Invalid UTF-8 characters are not considered whitespace for the purpose of trimming.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_raw_safely.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_raw_safely.3
new file mode 100644 (file)
index 0000000..e47fe4b
--- /dev/null
@@ -0,0 +1,59 @@
+.TH fl_print_trim_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_raw_safely\fP(
+    \fBconst f_string_t       \fP\fIstring\fP,
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBFILE *const            \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a string, stripping leading and trailing whitespace (and NULLs).
+.PP
+This is essentually a "safe" print that also prints NULL (except for trimmed NULLs).
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will print NULL (that are not trimmed).
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid()
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_print/data/documentation/man/man3/fl_print_trim_safely.3 b/level_1/fl_print/data/documentation/man/man3/fl_print_trim_safely.3
new file mode 100644 (file)
index 0000000..2b12871
--- /dev/null
@@ -0,0 +1,57 @@
+.TH fl_print_trim_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_print_trim_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fl_print_trim_safely\fP(
+    \fBconst f_string_t       \fP\fIstring\fP,
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBFILE *const            \fP\fIstream\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print a string, stripping leading and trailing whitespace.
+.PP
+Control characters are converted to the Unicode control character symbols, excluding NULL. UTF-8 sequences with invalid widths are converted to the unknown character '�'.
+.PP
+Will not stop at NULL. Will not print NULL.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B stream
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP on success but there is nothing to print.
+.br
+\fBF_output\fP (with error bit) on error when printing to output.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_is_combining().
+.br
+Errors (with error bit) from: f_utf_is_valid()
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index a906eb64c63a78686c3c2942c9f82398af6401ee..ed797601bebe42b2917986ce282b874b22d67dac 100644 (file)
@@ -34,7 +34,7 @@ extern "C" {
  *
  * This is intended to be explicitly use for the interrupt() callback defined in f_state_t.
  *
- * This check all interrupts provided in state->data.interrupts and if a signal is found, store that signal in state->data.trigger and returns F_interrupt (with error bit set).
+ * This checks all interrupts provided in state->data.interrupts and if a signal is found, store that signal in state->data.trigger and returns F_interrupt (with error bit set).
  * If state->data.signal.id is NULL, then F_enable_not is returned.
  *
  * @param state
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index dcc666f7267a6a68bf5d33a6d09e0361302e0bab..b5c8de6da913764ae1ac1fbc7c82b3bb53b68fd7 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library signal.c
 
 build_sources_headers signal.h signal/common.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_1/fl_signal/data/documentation/man/man3/fl_signal_state_interrupt.3 b/level_1/fl_signal/data/documentation/man/man3/fl_signal_state_interrupt.3
new file mode 100644 (file)
index 0000000..eda9417
--- /dev/null
@@ -0,0 +1,51 @@
+.TH fl_signal_state_interrupt "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_signal_state_interrupt
+.SH SYNOPSIS
+.nf
+.B #include <signal.h>
+.sp
+\fBf_status_t fl_signal_state_interrupt\fP(
+    \fBvoid *const \fP\fIstate\fP,
+    \fBvoid *const \fP\fIinternal\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provides common signal functions. Check to see if a given signal is received.
+.PP
+Provides a simple interrupt checker for general use.
+.PP
+This is intended to be explicitly use for the interrupt() callback defined in f_state_t.
+.PP
+This check all interrupts provided in state->data.interrupts and if a signal is found, store that signal in state->data.trigger and returns
+.SH PARAMETERS
+.TP
+.B state
+state->data: Ignored.
+
+
+.TP
+.B internal
+This is ignored.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_enable_not\fP on success but signals are not requested to be processed.
+.br
+\fBF_interrupt_not\fP on success and no requested signal was found.
+.br
+\fBF_interrupt\fP (with error bit set). If state->data.signal.id is NULL, then
+.br
+\fBF_enable_not\fP is returned.
+.br
+\fBF_interrupt\fP (with error bit) if a requested signal is confirmed to be found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index 54dd2b47511bd23e40e924695fd84ede61215af8..dea3179c38af2975f53f753a1311be4aa158be6a 100644 (file)
@@ -1,3 +1,3 @@
 # fss-0001
-  
+
 cmocka 1.*
index b649de4fe6fd01c14658eb3008b9db8d3f93a804..b206d4700e30bddc34868536bec98c738d2c6ca4 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library string.c private-string.c
 
 build_sources_headers string.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_compare.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_compare.3
new file mode 100644 (file)
index 0000000..7ace41b
--- /dev/null
@@ -0,0 +1,54 @@
+.TH fl_string_compare "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_compare
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_compare\fP(
+    \fBconst f_string_t       \fP\fIstring1\fP,
+    \fBconst f_string_t       \fP\fIstring2\fP,
+    \fBconst f_array_length_t \fP\fIlength1\fP,
+    \fBconst f_array_length_t \fP\fIlength2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provides basic string manipulation and processing capabilities.
+.PP
+UTF-8 is handled within these functions via normal string characters (f_string_t). Unlike f_utf_string_t, these f_string_t base functions do not force padding of ASCII or UTF-8 characters. With f_string_t, a 1-byte wide ASCII character is stored as 1 byte and a 4-byte wide UTF-8 character is stored as 4 bytes.
+.PP
+This shortens the size of the string at the cost of complexity vs f_utf_string_t.
+.PP
+Because of the variable width, it is generally unsafe to ignore invalid UTF-8 sequences. Invalid UTF-8 will be generally result in an error. Compare two strings, similar to strncmp().
+.PP
+This does not stop on NULL. NULL characters are ignored.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B length1
+Length of string1.
+
+.TP
+.B length2
+Length of string2.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_compare_except.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_compare_except.3
new file mode 100644 (file)
index 0000000..414352a
--- /dev/null
@@ -0,0 +1,58 @@
+.TH fl_string_compare_except "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_compare_except
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_compare_except\fP(
+    \fBconst f_string_t        \fP\fIstring1\fP,
+    \fBconst f_string_t        \fP\fIstring2\fP,
+    \fBconst f_array_length_t  \fP\fIlength1\fP,
+    \fBconst f_array_length_t  \fP\fIlength2\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept1\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two strings, similar to strncmp().
+.PP
+This does not stop on NULL. NULL characters are ignored. All 1-byte characters in except1 and except2 are ignored.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B length1
+Length of string1.
+
+.TP
+.B length2
+Length of string2.
+
+.TP
+.B except1
+A set of locations within string1 to ignore. This assumes/requires that the locations be in linear order.
+
+.TP
+.B except2
+A set of locations within string2 to ignore. This assumes/requires that the locations be in linear order.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_compare_except_trim.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_compare_except_trim.3
new file mode 100644 (file)
index 0000000..3721bff
--- /dev/null
@@ -0,0 +1,62 @@
+.TH fl_string_compare_except_trim "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_compare_except_trim
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_compare_except_trim\fP(
+    \fBconst f_string_t        \fP\fIstring1\fP,
+    \fBconst f_string_t        \fP\fIstring2\fP,
+    \fBconst f_array_length_t  \fP\fIlength1\fP,
+    \fBconst f_array_length_t  \fP\fIlength2\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept1\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two strings, similar to strncmp().
+.PP
+This does not stop on NULL. NULL characters are ignored. Ignores leading and trailing whitespace. All 1-byte characters in except1 and except2 are ignored.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B length1
+Length of string1.
+
+.TP
+.B length2
+Length of string2.
+
+.TP
+.B except1
+A set of locations within string1 to ignore. This assumes/requires that the locations be in linear order.
+
+.TP
+.B except2
+A set of locations within string2 to ignore. This assumes/requires that the locations be in linear order.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_combining().
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_compare_trim.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_compare_trim.3
new file mode 100644 (file)
index 0000000..3086df3
--- /dev/null
@@ -0,0 +1,52 @@
+.TH fl_string_compare_trim "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_compare_trim
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_compare_trim\fP(
+    \fBconst f_string_t       \fP\fIstring1\fP,
+    \fBconst f_string_t       \fP\fIstring2\fP,
+    \fBconst f_array_length_t \fP\fIlength1\fP,
+    \fBconst f_array_length_t \fP\fIlength2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two strings, similar to strncmp().
+.PP
+This does not stop on NULL. NULL characters are ignored. Ignores leading and trailing whitespace.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B length1
+Length of string1.
+
+.TP
+.B length2
+Length of string2.
+
+.SH RETURN VALUE
+.br
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_combining().
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_compare.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_compare.3
new file mode 100644 (file)
index 0000000..1056746
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fl_string_dynamic_compare "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_compare
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_compare\fP(
+    \fBconst f_string_static_t \fP\fIstring1\fP,
+    \fBconst f_string_static_t \fP\fIstring2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two strings, similar to strncmp().
+.PP
+This does not stop on NULL. NULL characters are ignored.
+.PP
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_compare_except.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_compare_except.3
new file mode 100644 (file)
index 0000000..b5735fb
--- /dev/null
@@ -0,0 +1,48 @@
+.TH fl_string_dynamic_compare_except "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_compare_except
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_compare_except\fP(
+    \fBconst f_string_static_t \fP\fIstring1\fP,
+    \fBconst f_string_static_t \fP\fIstring2\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept1\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two strings, similar to strncmp().
+.PP
+This does not stop on NULL. NULL characters are ignored. All 1-byte characters in except1 and except2 are ignored.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B except1
+A set of locations within string1 to ignore. This assumes/requires that the locations be in linear order.
+
+.TP
+.B except2
+A set of locations within string2 to ignore. This assumes/requires that the locations be in linear order.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_compare_except_string.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_compare_except_string.3
new file mode 100644 (file)
index 0000000..e05549b
--- /dev/null
@@ -0,0 +1,59 @@
+.TH fl_string_dynamic_compare_except_string "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_compare_except_string
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_compare_except_string\fP(
+    \fBconst f_string_t        \fP\fIstring1\fP,
+    \fBconst f_string_static_t \fP\fIstring2\fP,
+    \fBconst f_array_length_t  \fP\fIlength1\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept1\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two strings, similar to strncmp().
+.PP
+This operates with the first string being a traditional string.
+.PP
+This does not stop on NULL. NULL characters are ignored. All 1-byte characters in except1 and except2 are ignored.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B length1
+The length of string1.
+
+.TP
+.B except1
+A set of locations within string1 to ignore. This assumes/requires that the locations be in linear order.
+
+.TP
+.B except2
+A set of locations within string2 to ignore. This assumes/requires that the locations be in linear order.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_combining().
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_compare_except_trim.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_compare_except_trim.3
new file mode 100644 (file)
index 0000000..ef5255b
--- /dev/null
@@ -0,0 +1,52 @@
+.TH fl_string_dynamic_compare_except_trim "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_compare_except_trim
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_compare_except_trim\fP(
+    \fBconst f_string_static_t \fP\fIstring1\fP,
+    \fBconst f_string_static_t \fP\fIstring2\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept1\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two strings, similar to strncmp().
+.PP
+This does not stop on NULL. NULL characters are ignored. Ignores leading and trailing whitespace. All 1-byte characters in except1 and except2 are ignored.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B except1
+A set of locations within string1 to ignore. This assumes/requires that the locations be in linear order.
+
+.TP
+.B except2
+A set of locations within string2 to ignore. This assumes/requires that the locations be in linear order.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_combining().
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_compare_except_trim_string.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_compare_except_trim_string.3
new file mode 100644 (file)
index 0000000..853cfe8
--- /dev/null
@@ -0,0 +1,59 @@
+.TH fl_string_dynamic_compare_except_trim_string "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_compare_except_trim_string
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_compare_except_trim_string\fP(
+    \fBconst f_string_t        \fP\fIstring1\fP,
+    \fBconst f_string_static_t \fP\fIstring2\fP,
+    \fBconst f_array_length_t  \fP\fIlength1\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept1\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two strings, similar to strncmp().
+.PP
+This operates with the first string being a traditional string.
+.PP
+This does not stop on NULL. NULL characters are ignored. Ignores leading and trailing whitespace. All 1-byte characters in except1 and except2 are ignored.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B length1
+The length of string1.
+
+.TP
+.B except1
+A set of locations within string1 to ignore. This assumes/requires that the locations be in linear order.
+
+.TP
+.B except2
+A set of locations within string2 to ignore. This assumes/requires that the locations be in linear order.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_combining().
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_compare_string.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_compare_string.3
new file mode 100644 (file)
index 0000000..c331d69
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fl_string_dynamic_compare_string "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_compare_string
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_compare_string\fP(
+    \fBconst f_string_t        \fP\fIstring1\fP,
+    \fBconst f_string_static_t \fP\fIstring2\fP,
+    \fBconst f_array_length_t  \fP\fIlength1\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two strings, similar to strncmp().
+.PP
+This operates with the first string being a traditional string.
+.PP
+This does not stop on NULL. NULL characters are ignored.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B length1
+The length of string1.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_combining().
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_compare_trim.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_compare_trim.3
new file mode 100644 (file)
index 0000000..7c6d3d2
--- /dev/null
@@ -0,0 +1,42 @@
+.TH fl_string_dynamic_compare_trim "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_compare_trim
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_compare_trim\fP(
+    \fBconst f_string_static_t \fP\fIstring1\fP,
+    \fBconst f_string_static_t \fP\fIstring2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two strings, similar to strncmp().
+.PP
+This does not stop on NULL. NULL characters are ignored. Ignores leading and trailing whitespace.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_combining().
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_compare_trim_string.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_compare_trim_string.3
new file mode 100644 (file)
index 0000000..e364a02
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fl_string_dynamic_compare_trim_string "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_compare_trim_string
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_compare_trim_string\fP(
+    \fBconst f_string_t        \fP\fIstring1\fP,
+    \fBconst f_string_static_t \fP\fIstring2\fP,
+    \fBconst f_array_length_t  \fP\fIlength1\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two strings, similar to strncmp().
+.PP
+This operates with the first string being a traditional string.
+.PP
+This does not stop on NULL. NULL characters are ignored. Ignores leading and trailing whitespace.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B length1
+The length of string1.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_combining().
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare.3
new file mode 100644 (file)
index 0000000..3a4d91d
--- /dev/null
@@ -0,0 +1,48 @@
+.TH fl_string_dynamic_partial_compare "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_partial_compare
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_partial_compare\fP(
+    \fBconst f_string_static_t \fP\fIstring1\fP,
+    \fBconst f_string_static_t \fP\fIstring2\fP,
+    \fBconst f_string_range_t  \fP\fIrange1\fP,
+    \fBconst f_string_range_t  \fP\fIrange2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two strings, similar to strncmp(), but restricted to the given ranges.
+.PP
+This does not stop on NULL. NULL characters are ignored.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B range1
+A range within the string1 to restrict the comparison to.
+
+.TP
+.B range2
+A range within the string2 to restrict the comparison to.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_dynamic.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_dynamic.3
new file mode 100644 (file)
index 0000000..dfbecad
--- /dev/null
@@ -0,0 +1,43 @@
+.TH fl_string_dynamic_partial_compare_dynamic "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_partial_compare_dynamic
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_partial_compare_dynamic\fP(
+    \fBconst f_string_static_t \fP\fIstring1\fP,
+    \fBconst f_string_static_t \fP\fIstring2\fP,
+    \fBconst f_string_range_t  \fP\fIrange2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two strings, similar to strncmp(), but restricted to the given range for the second string.
+.PP
+This does not stop on NULL. NULL characters are ignored.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B range2
+A range within the string2 to restrict the comparison to.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_except.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_except.3
new file mode 100644 (file)
index 0000000..15edf34
--- /dev/null
@@ -0,0 +1,58 @@
+.TH fl_string_dynamic_partial_compare_except "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_partial_compare_except
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_partial_compare_except\fP(
+    \fBconst f_string_static_t \fP\fIstring1\fP,
+    \fBconst f_string_static_t \fP\fIstring2\fP,
+    \fBconst f_string_range_t  \fP\fIrange1\fP,
+    \fBconst f_string_range_t  \fP\fIrange2\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept1\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two strings, similar to strncmp(), but restricted to the given ranges.
+.PP
+This does not stop on NULL. NULL characters are ignored. All 1-byte characters in except1 and except2 are ignored.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B range1
+A range within the string1 to restrict the comparison to.
+
+.TP
+.B range2
+A range within the string2 to restrict the comparison to.
+
+.TP
+.B except1
+A set of locations within string1 to ignore. This assumes/requires that the locations be in linear order.
+
+.TP
+.B except2
+A set of locations within string2 to ignore. This assumes/requires that the locations be in linear order.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_except_dynamic.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_except_dynamic.3
new file mode 100644 (file)
index 0000000..35a346f
--- /dev/null
@@ -0,0 +1,52 @@
+.TH fl_string_dynamic_partial_compare_except_dynamic "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_partial_compare_except_dynamic
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_partial_compare_except_dynamic\fP(
+    \fBconst f_string_static_t \fP\fIstring1\fP,
+    \fBconst f_string_static_t \fP\fIstring2\fP,
+    \fBconst f_string_range_t  \fP\fIrange2\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept1\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two strings, similar to strncmp(), but restricted to the given range for the second string.
+.PP
+This does not stop on NULL. NULL characters are ignored. All 1-byte characters in except1 and except2 are ignored.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B range2
+A range within the string2 to restrict the comparison to.
+
+.TP
+.B except1
+A set of locations within string1 to ignore. This assumes/requires that the locations be in linear order.
+
+.TP
+.B except2
+A set of locations within string2 to ignore. This assumes/requires that the locations be in linear order.
+
+.SH RETURN VALUE
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_except_string.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_except_string.3
new file mode 100644 (file)
index 0000000..44d5c91
--- /dev/null
@@ -0,0 +1,60 @@
+.TH fl_string_dynamic_partial_compare_except_string "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_partial_compare_except_string
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_partial_compare_except_string\fP(
+    \fBconst f_string_t        \fP\fIstring1\fP,
+    \fBconst f_string_static_t \fP\fIstring2\fP,
+    \fBconst f_array_length_t  \fP\fIlength1\fP,
+    \fBconst f_string_range_t  \fP\fIrange2\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept1\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two strings, similar to strncmp(), but restricted to the given range for the second string.
+.PP
+This operates with the first string being a traditional string.
+.PP
+This does not stop on NULL. NULL characters are ignored. All 1-byte characters in except1 and except2 are ignored.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B length1
+The length of string1.
+
+.TP
+.B range2
+A range within the string2 to restrict the comparison to.
+
+.TP
+.B except1
+A set of locations within string1 to ignore. This assumes/requires that the locations be in linear order.
+
+.TP
+.B except2
+A set of locations within string2 to ignore. This assumes/requires that the locations be in linear order.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_except_trim.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_except_trim.3
new file mode 100644 (file)
index 0000000..f1d92f2
--- /dev/null
@@ -0,0 +1,62 @@
+.TH fl_string_dynamic_partial_compare_except_trim "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_partial_compare_except_trim
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_partial_compare_except_trim\fP(
+    \fBconst f_string_static_t \fP\fIstring1\fP,
+    \fBconst f_string_static_t \fP\fIstring2\fP,
+    \fBconst f_string_range_t  \fP\fIrange1\fP,
+    \fBconst f_string_range_t  \fP\fIrange2\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept1\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two strings, similar to strncmp(), but restricted to the given ranges.
+.PP
+This does not stop on NULL. NULL characters are ignored. Ignores leading and trailing whitespace. All 1-byte characters in except1 and except2 are ignored.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B range1
+A range within the string1 to restrict the comparison to.
+
+.TP
+.B range2
+A range within the string2 to restrict the comparison to.
+
+.TP
+.B except1
+A set of locations within string1 to ignore. This assumes/requires that the locations be in linear order.
+
+.TP
+.B except2
+A set of locations within string2 to ignore. This assumes/requires that the locations be in linear order.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_combining().
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_except_trim_dynamic.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_except_trim_dynamic.3
new file mode 100644 (file)
index 0000000..d162dfc
--- /dev/null
@@ -0,0 +1,57 @@
+.TH fl_string_dynamic_partial_compare_except_trim_dynamic "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_partial_compare_except_trim_dynamic
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_partial_compare_except_trim_dynamic\fP(
+    \fBconst f_string_static_t \fP\fIstring1\fP,
+    \fBconst f_string_static_t \fP\fIstring2\fP,
+    \fBconst f_string_range_t  \fP\fIrange2\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept1\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two strings, similar to strncmp(), but restricted to the given range for the second string.
+.PP
+This does not stop on NULL. NULL characters are ignored. Ignores leading and trailing whitespace. All 1-byte characters in except1 and except2 are ignored.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B range2
+A range within the string2 to restrict the comparison to.
+
+.TP
+.B except1
+A set of locations within string1 to ignore. This assumes/requires that the locations be in linear order.
+
+.TP
+.B except2
+A set of locations within string2 to ignore. This assumes/requires that the locations be in linear order.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_combining().
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_except_trim_string.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_except_trim_string.3
new file mode 100644 (file)
index 0000000..57c0e4c
--- /dev/null
@@ -0,0 +1,64 @@
+.TH fl_string_dynamic_partial_compare_except_trim_string "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_partial_compare_except_trim_string
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_partial_compare_except_trim_string\fP(
+    \fBconst f_string_t        \fP\fIstring1\fP,
+    \fBconst f_string_static_t \fP\fIstring2\fP,
+    \fBconst f_array_length_t  \fP\fIlength1\fP,
+    \fBconst f_string_range_t  \fP\fIrange2\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept1\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two strings, similar to strncmp(), but restricted to the given range for the second string.
+.PP
+This operates with the first string being a traditional string.
+.PP
+This does not stop on NULL. NULL characters are ignored. Ignores leading and trailing whitespace. All 1-byte characters in except1 and except2 are ignored.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B length1
+The length of string1.
+
+.TP
+.B range2
+A range within the string2 to restrict the comparison to.
+
+.TP
+.B except1
+A set of locations within string1 to ignore. This assumes/requires that the locations be in linear order.
+
+.TP
+.B except2
+A set of locations within string2 to ignore. This assumes/requires that the locations be in linear order.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_combining().
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_string.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_string.3
new file mode 100644 (file)
index 0000000..773020f
--- /dev/null
@@ -0,0 +1,50 @@
+.TH fl_string_dynamic_partial_compare_string "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_partial_compare_string
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_partial_compare_string\fP(
+    \fBconst f_string_t        \fP\fIstring1\fP,
+    \fBconst f_string_static_t \fP\fIstring2\fP,
+    \fBconst f_array_length_t  \fP\fIlength1\fP,
+    \fBconst f_string_range_t  \fP\fIrange2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two strings, similar to strncmp(), but restricted to the given range for the second string.
+.PP
+This operates with the first string being a traditional string.
+.PP
+This does not stop on NULL. NULL characters are ignored.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B length1
+The length of string1.
+
+.TP
+.B range2
+A range within the string2 to restrict the comparison to.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_trim.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_trim.3
new file mode 100644 (file)
index 0000000..acd9841
--- /dev/null
@@ -0,0 +1,51 @@
+.TH fl_string_dynamic_partial_compare_trim "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_partial_compare_trim
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_partial_compare_trim\fP(
+    \fBconst f_string_static_t \fP\fIstring1\fP,
+    \fBconst f_string_static_t \fP\fIstring2\fP,
+    \fBconst f_string_range_t  \fP\fIrange1\fP,
+    \fBconst f_string_range_t  \fP\fIrange2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two strings, similar to strncmp(), but restricted to the given ranges.
+.PP
+This does not stop on NULL. NULL characters are ignored. Ignores leading and trailing whitespace.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B range1
+
+.TP
+.B range2
+A range within the string2 to restrict the comparison to.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_combining().
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_trim_dynamic.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_trim_dynamic.3
new file mode 100644 (file)
index 0000000..5972757
--- /dev/null
@@ -0,0 +1,47 @@
+.TH fl_string_dynamic_partial_compare_trim_dynamic "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_partial_compare_trim_dynamic
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_partial_compare_trim_dynamic\fP(
+    \fBconst f_string_static_t \fP\fIstring1\fP,
+    \fBconst f_string_static_t \fP\fIstring2\fP,
+    \fBconst f_string_range_t  \fP\fIrange2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two strings, similar to strncmp(), but restricted to the given range for the second string.
+.PP
+This does not stop on NULL. NULL characters are ignored. Ignores leading and trailing whitespace.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B range2
+A range within the string2 to restrict the comparison to.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_combining().
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_trim_string.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_compare_trim_string.3
new file mode 100644 (file)
index 0000000..86208c5
--- /dev/null
@@ -0,0 +1,54 @@
+.TH fl_string_dynamic_partial_compare_trim_string "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_partial_compare_trim_string
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_partial_compare_trim_string\fP(
+    \fBconst f_string_t        \fP\fIstring1\fP,
+    \fBconst f_string_static_t \fP\fIstring2\fP,
+    \fBconst f_array_length_t  \fP\fIlength1\fP,
+    \fBconst f_string_range_t  \fP\fIrange2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two strings, similar to strncmp(), but restricted to the given range for the second string.
+.PP
+This operates with the first string being a traditional string.
+.PP
+This does not stop on NULL. NULL characters are ignored. Ignores leading and trailing whitespace.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B length1
+The length of string1.
+
+.TP
+.B range2
+A range within the string2 to restrict the comparison to.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_combining().
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_fll_identify.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_fll_identify.3
new file mode 100644 (file)
index 0000000..eedb3cb
--- /dev/null
@@ -0,0 +1,69 @@
+.TH fl_string_dynamic_partial_fll_identify "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_partial_fll_identify
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_partial_fll_identify\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP,
+    \fBf_fll_id_t *const       \fP\fIid\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Identify whether or not the given string represents a single valid FLL Identifier and possibly save the FLL Identifier.
+.PP
+This will always change the FLL Identifier used and type codes, if a FLL Identifier is provided.
+.PP
+Whitespace may be before and after the FLL Identifier and will be ignored. NULLs will be ignored. Anything else will result in treating the character as a possible FLL Identifier.
+.PP
+A valid FLL Identifier must terminate on either whitespace, EOL, or the stop point (length).
+.PP
+The id.name might not be NULL terminated. An id.name using all 64-bytes will not be NULL terminated.
+.PP
+If a newline ("\n") is encountered, range->start will be set to 1 byte after the newline.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to process.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The caller must ensure that the stop point does not exceed the buffer size.
+
+.TP
+.B id
+(optional) The FLL Identifier found. Set to NULL to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_data_not\fP if length is 0.
+.br
+\fBF_data_not_eos\fP on success, but the range.start >= buffer.used.
+.br
+\fBF_data_not_stop\fP on success, but the range.start > range.stop.
+.br
+\fBF_found\fP if the buffer does represent a valid FLL Identifier.
+.br
+\fBF_found_not\fP if the buffer does not represent a valid FLL Identifier.
+.br
+\fBF_complete_not_utf\fP (with error bit) if a character is an incomplete UTF-8 fragment.
+.br
+\fBF_maybe\fP (with error bit) if a character could be a whitespace but width is not long enough. (This is only returned for an otherwise valid FLL Identifier.)
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_combining().
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_whitespace().
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_word().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_rip.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_rip.3
new file mode 100644 (file)
index 0000000..bd0605d
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fl_string_dynamic_partial_rip "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_partial_rip
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_partial_rip\fP(
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t    \fP\fIrange\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Allocate a new string from the provided range in the buffer.
+.PP
+Ignores leading and trailing whitespace. Ignores leading and trailing NULL characters. As a result, resulting size may be smaller than requested range.
+.SH PARAMETERS
+.TP
+.B source
+The buffer to rip from.
+
+.TP
+.B range
+A range within the buffer representing the string to rip.
+
+.TP
+.B destination
+The new string, which will be allocated or reallocated as necessary.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not_eos\fP if source length is 0.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_rip_nulless.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_partial_rip_nulless.3
new file mode 100644 (file)
index 0000000..d008568
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fl_string_dynamic_partial_rip_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_partial_rip_nulless
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_partial_rip_nulless\fP(
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t    \fP\fIrange\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Allocate a new string from the provided range in the buffer.
+.PP
+Ignores leading and trailing whitespace. Ignores leading and trailing NULL characters. As a result, resulting size may be smaller than requested range.
+.PP
+Skips over NULL characters from source when appending.
+.SH PARAMETERS
+.TP
+.B source
+The string to rip from.
+
+.TP
+.B range
+A range within the buffer representing the string to rip.
+
+.TP
+.B destination
+The new string, which will be allocated or reallocated as necessary.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not_eos\fP if source length is 0.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_rip.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_rip.3
new file mode 100644 (file)
index 0000000..72f6a4c
--- /dev/null
@@ -0,0 +1,42 @@
+.TH fl_string_dynamic_rip "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_rip
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_rip\fP(
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Allocate a new string from the provided range in the buffer.
+.PP
+Ignores leading and trailing whitespace. Ignores leading and trailing NULL characters. As a result, resulting size may be smaller than requested range.
+.SH PARAMETERS
+.TP
+.B source
+The buffer to rip from.
+
+.TP
+.B destination
+The new string, which will be allocated or reallocated as necessary.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not_eos\fP if source length is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_rip_nulless.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_rip_nulless.3
new file mode 100644 (file)
index 0000000..274e16d
--- /dev/null
@@ -0,0 +1,42 @@
+.TH fl_string_dynamic_rip_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_rip_nulless
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_rip_nulless\fP(
+    \fBconst f_string_static_t   \fP\fIsource\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Allocate a new string from the provided range in the buffer.
+.PP
+Ignores leading and trailing whitespace. Ignores leading and trailing NULL characters. As a result, resulting size may be smaller than requested range.
+.PP
+Skips over NULL characters from source when appending.
+.SH PARAMETERS
+.TP
+.B source
+The string to rip from.
+
+.TP
+.B destination
+The new string, which will be allocated or reallocated as necessary.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not_eos\fP if source length is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_seek_line_to_utf_character.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_seek_line_to_utf_character.3
new file mode 100644 (file)
index 0000000..8492781
--- /dev/null
@@ -0,0 +1,61 @@
+.TH fl_string_dynamic_seek_line_to_utf_character "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_seek_line_to_utf_character
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_seek_line_to_utf_character\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_utf_char_t      \fP\fIseek_to_this\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Seek the buffer location forward until the character (up to 4-byte wide) or EOL is reached.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to traverse.
+
+.TP
+.B seek_to_this
+A 1-width, 2-width, 3-width, or 4-width character representing a character to seek to.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The start location will be incremented by seek.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eol\fP on success, but stopped at EOL.
+.br
+\fBF_none_eos\fP on success, but stopped at end of buffer.
+.br
+\fBF_none_stop\fP on success, but stopped at end of range.
+.br
+\fBF_data_not\fP on success, but there was no string data to seek.
+.br
+\fBF_data_not_eos\fP on success, but the range.start >= buffer.used.
+.br
+\fBF_data_not_stop\fP on success, but the range.start > range.stop.
+.br
+\fBF_complete_not_utf\fP (with error bit) if character is an incomplete UTF-8 fragment.
+.br
+\fBF_complete_not_utf_stop\fP (with error bit) if the stop location is reached before the complete UTF-8 character can be processed.
+.br
+\fBF_complete_not_utf_eos\fP (with error bit) if the end of buffer is reached before the complete UTF-8 character can be processed.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_char_to_character().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_seek_line_until_graph.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_seek_line_until_graph.3
new file mode 100644 (file)
index 0000000..456dbcf
--- /dev/null
@@ -0,0 +1,61 @@
+.TH fl_string_dynamic_seek_line_until_graph "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_seek_line_until_graph
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_seek_line_until_graph\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst uint8_t           \fP\fIplaceholder\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increment buffer location until a graph character (including UTF-8) or an EOL is matched.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to traverse.
+
+.TP
+.B placeholder
+A single-width character representing a placeholder to ignore (may be NULL).
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eol\fP on success, but stopped at EOL.
+.br
+\fBF_none_eos\fP on success, but stopped at end of buffer.
+.br
+\fBF_none_stop\fP on success, but stopped at end of range.
+.br
+\fBF_data_not\fP on success, but there was no string data to seek.
+.br
+\fBF_data_not_eos\fP on success, but the range.start >= buffer.used.
+.br
+\fBF_data_not_stop\fP on success, but the range.start > range.stop.
+.br
+\fBF_complete_not_utf\fP (with error bit) if character is an incomplete UTF-8 fragment.
+.br
+\fBF_complete_not_utf_stop\fP (with error bit) if the stop location is reached before the complete UTF-8 character can be processed.
+.br
+\fBF_complete_not_utf_eos\fP (with error bit) if the end of buffer is reached before the complete UTF-8 character can be processed.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_utf_is_graph().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_seek_line_until_graph_non.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_seek_line_until_graph_non.3
new file mode 100644 (file)
index 0000000..cbcf670
--- /dev/null
@@ -0,0 +1,61 @@
+.TH fl_string_dynamic_seek_line_until_graph_non "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_seek_line_until_graph_non
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_seek_line_until_graph_non\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst uint8_t           \fP\fIplaceholder\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increment buffer location until a non-graph character (including UTF-8) or an EOL is matched.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to traverse.
+
+.TP
+.B placeholder
+A single-width character representing a placeholder to ignore (may be NULL).
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eol\fP on success, but stopped at EOL.
+.br
+\fBF_none_eos\fP on success, but stopped at end of buffer.
+.br
+\fBF_none_stop\fP on success, but stopped at end of range.
+.br
+\fBF_data_not\fP on success, but there was no string data to seek.
+.br
+\fBF_data_not_eos\fP on success, but the range.start >= buffer.used.
+.br
+\fBF_data_not_stop\fP on success, but the range.start > range.stop.
+.br
+\fBF_complete_not_utf\fP (with error bit) if character is an incomplete UTF-8 fragment.
+.br
+\fBF_complete_not_utf_stop\fP (with error bit) if the stop location is reached before the complete UTF-8 character can be processed.
+.br
+\fBF_complete_not_utf_eos\fP (with error bit) if the end of buffer is reached before the complete UTF-8 character can be processed.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_utf_is_graph().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_seek_to_utf_character.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_dynamic_seek_to_utf_character.3
new file mode 100644 (file)
index 0000000..7fc7c6d
--- /dev/null
@@ -0,0 +1,59 @@
+.TH fl_string_dynamic_seek_to_utf_character "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_dynamic_seek_to_utf_character
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_dynamic_seek_to_utf_character\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_utf_char_t      \fP\fIseek_to_this\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Seek the buffer location forward until the UTF-8 character (up to 4-byte wide) is reached.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to traverse.
+
+.TP
+.B seek_to_this
+A 1-width, 2-width, 3-width, or 4-width character representing a character to seek to.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The start location will be incremented by seek.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fB on success.
+.br
+\fBF_none_stop\fP on success, but stopped at end of range.
+.br
+\fBF_none_eos\fP on success, but stopped at end of buffer.
+.br
+\fBF_data_not\fP on success, but there was no string data to seek.
+.br
+\fBF_data_not_eos\fP on success, but the range.start >= buffer.used.
+.br
+\fBF_data_not_stop\fP on success, but the range.start > range.stop.
+.br
+\fBF_complete_not_utf\fP (with error bit) if character is an incomplete UTF-8 fragment.
+.br
+\fBF_complete_not_utf_stop\fP (with error bit) if the stop location is reached before the complete UTF-8 character can be processed.
+.br
+\fBF_complete_not_utf_eos\fP (with error bit) if the end of buffer is reached before the complete UTF-8 character can be processed.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_char_to_character().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_rip.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_rip.3
new file mode 100644 (file)
index 0000000..4158610
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fl_string_rip "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_rip
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_rip\fP(
+    \fBconst f_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t    \fP\fIlength\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Allocate a new string from the provided range in the string.
+.PP
+Ignores leading and trailing whitespace. Ignores leading and trailing NULL characters. As a result, resulting size may be smaller than requested length.
+.SH PARAMETERS
+.TP
+.B source
+The string to rip from.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The new string, which will be allocated or reallocated as necessary.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not_eos\fP if source length is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_combining().
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_rip_nulless.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_rip_nulless.3
new file mode 100644 (file)
index 0000000..0fcebc0
--- /dev/null
@@ -0,0 +1,51 @@
+.TH fl_string_rip_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_rip_nulless
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_rip_nulless\fP(
+    \fBconst f_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t    \fP\fIlength\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Allocate a new string from the provided range in the string.
+.PP
+Ignores leading and trailing whitespace. Ignores leading and trailing NULL characters. As a result, resulting size may be smaller than requested length.
+.PP
+Skips over NULL characters from source when ripping.
+.SH PARAMETERS
+.TP
+.B source
+The string to rip from.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The new string, which will be allocated or reallocated as necessary.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not_eos\fP if source length is 0.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_combining().
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_seek_line_to_utf_character.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_seek_line_to_utf_character.3
new file mode 100644 (file)
index 0000000..7a82e36
--- /dev/null
@@ -0,0 +1,51 @@
+.TH fl_string_seek_line_to_utf_character "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_seek_line_to_utf_character
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_seek_line_to_utf_character\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_utf_char_t      \fP\fIseek_to\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Seek the string location forward until the character (up to 4-byte wide) or EOL is reached.
+.SH PARAMETERS
+.TP
+.B string
+The string to traverse.
+
+.TP
+.B seek_to
+A 1-width, 2-width, 3-width, or 4-width character representing a character to seek to.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The start location will be incremented by seek.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eol\fP on success, but stopped at EOL.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_complete_not_utf\fP (with error bit) if character is an incomplete UTF-8 fragment.
+.br
+\fBF_complete_not_utf_stop\fP (with error bit) if the stop location is reached before the complete UTF-8 character can be processed.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_char_to_character().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_seek_line_until_graph.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_seek_line_until_graph.3
new file mode 100644 (file)
index 0000000..51fab36
--- /dev/null
@@ -0,0 +1,51 @@
+.TH fl_string_seek_line_until_graph "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_seek_line_until_graph
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_seek_line_until_graph\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst uint8_t           \fP\fIplaceholder\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increment string location until a graph character (including UTF-8) or an EOL is matched.
+.SH PARAMETERS
+.TP
+.B string
+The string to traverse.
+
+.TP
+.B placeholder
+A single-width character representing a placeholder to ignore (may be NULL).
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The start location will be incremented by seek.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eol\fP on success, but stopped at EOL.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_complete_not_utf\fP (with error bit) if character is an incomplete UTF-8 fragment.
+.br
+\fBF_complete_not_utf_stop\fP (with error bit) if the stop location is reached before the complete UTF-8 character can be processed.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_utf_is_graph().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_seek_line_until_graph_non.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_seek_line_until_graph_non.3
new file mode 100644 (file)
index 0000000..cb9fc18
--- /dev/null
@@ -0,0 +1,55 @@
+.TH fl_string_seek_line_until_graph_non "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_seek_line_until_graph_non
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_seek_line_until_graph_non\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst uint8_t           \fP\fIplaceholder\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increment string location until a non-graph character (including UTF-8) or an EOL is matched.
+.SH PARAMETERS
+.TP
+.B string
+The string to traverse.
+
+.TP
+.B placeholder
+A single-width character representing a placeholder to ignore (may be NULL).
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The start location will be incremented by seek.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eol\fP on success, but stopped at EOL.
+.br
+\fBF_none_stop\fP on success, but stopped stop location.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_complete_not_utf\fP (with error bit) if character is an incomplete UTF-8 fragment.
+.br
+\fBF_complete_not_utf_stop\fP (with error bit) if the stop location is reached before the complete UTF-8 character can be processed.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_combining().
+.br
+\fBF_parameter\fP (with error bit) from: f_utf_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_string/data/documentation/man/man3/fl_string_seek_to_utf_character.3 b/level_1/fl_string/data/documentation/man/man3/fl_string_seek_to_utf_character.3
new file mode 100644 (file)
index 0000000..9d661c6
--- /dev/null
@@ -0,0 +1,51 @@
+.TH fl_string_seek_to_utf_character "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_string_seek_to_utf_character
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+\fBf_status_t fl_string_seek_to_utf_character\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_utf_char_t      \fP\fIseek_to\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Seek the string location forward until the UTF-8 character (up to 4-byte wide) is reached.
+.SH PARAMETERS
+.TP
+.B string
+The string to traverse.
+
+.TP
+.B seek_to
+A 1-width, 2-width, 3-width, or 4-width character representing a character to seek to.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The start location will be incremented by seek.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_stop\fP on success, but stopped stop location.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_complete_not_utf\fP (with error bit) if character is an incomplete UTF-8 fragment.
+.br
+\fBF_complete_not_utf_stop\fP (with error bit) if the stop location is reached before the complete UTF-8 character can be processed.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_not\fP (with error bit) if character is an invalid UTF-8 character.
+.br
+Errors (with error bit) from: f_utf_char_to_character().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index eb1e545f676ff537611ba8fc785a4601ea9a6030..1289015a736dee89839d0ba60b9c7794e860a3be 100644 (file)
@@ -35,6 +35,8 @@ build_sources_library utf.c private-utf.c
 
 build_sources_headers utf.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_compare.3 b/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_compare.3
new file mode 100644 (file)
index 0000000..4d6743c
--- /dev/null
@@ -0,0 +1,54 @@
+.TH fl_utf_string_compare "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_utf_string_compare
+.SH SYNOPSIS
+.nf
+.B #include <utf.h>
+.sp
+\fBf_status_t fl_utf_string_compare\fP(
+    \fBconst f_utf_string_t   \fP\fIstring1\fP,
+    \fBconst f_utf_string_t   \fP\fIstring2\fP,
+    \fBconst f_array_length_t \fP\fIlength1\fP,
+    \fBconst f_array_length_t \fP\fIlength2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provides UTF-8 character manipulation and processing capabilities.
+.PP
+UTF-8 is handled within these functions via padded string characters (f_utf_string_t). Unlike f_string_t, these f_utf_string_t base functions force padding of ASCII or UTF-8 characters. With f_utf_string_t, a 1-byte wide ASCII character is stored as 4 bytes and a 4-byte wide UTF-8 character is stored as 4 bytes.
+.PP
+This simplifies traversing the strings at the cost of size vs f_string_t.
+.PP
+Because of the set width, it is generally safe to ignore invalid UTF-8 sequences. Invalid UTF-8 will be generally ignored here, where reasonably possible. Compare two UTF-8 strings, similar to strncmp().
+.PP
+This does not stop on NULL. NULL characters are ignored.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B length1
+Length of string1.
+
+.TP
+.B length2
+Length of string2.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_compare_trim.3 b/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_compare_trim.3
new file mode 100644 (file)
index 0000000..6abbd5e
--- /dev/null
@@ -0,0 +1,50 @@
+.TH fl_utf_string_compare_trim "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_utf_string_compare_trim
+.SH SYNOPSIS
+.nf
+.B #include <utf.h>
+.sp
+\fBf_status_t fl_utf_string_compare_trim\fP(
+    \fBconst f_utf_string_t   \fP\fIstring1\fP,
+    \fBconst f_utf_string_t   \fP\fIstring2\fP,
+    \fBconst f_array_length_t \fP\fIlength1\fP,
+    \fBconst f_array_length_t \fP\fIlength2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two UTF-8 strings, similar to strncmp().
+.PP
+This does not stop on NULL. NULL characters are ignored. Ignores leading and trailing whitespace.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B length1
+Length of string1.
+
+.TP
+.B length2
+Length of string2.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_utf_character_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_compare.3 b/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_compare.3
new file mode 100644 (file)
index 0000000..990aa11
--- /dev/null
@@ -0,0 +1,40 @@
+.TH fl_utf_string_dynamic_compare "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_utf_string_dynamic_compare
+.SH SYNOPSIS
+.nf
+.B #include <utf.h>
+.sp
+\fBf_status_t fl_utf_string_dynamic_compare\fP(
+    \fBconst f_utf_string_static_t \fP\fIstring1\fP,
+    \fBconst f_utf_string_static_t \fP\fIstring2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two UTF-8 strings, similar to strncmp().
+.PP
+This does not stop on NULL. NULL characters are ignored.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_compare_trim.3 b/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_compare_trim.3
new file mode 100644 (file)
index 0000000..81e81ca
--- /dev/null
@@ -0,0 +1,42 @@
+.TH fl_utf_string_dynamic_compare_trim "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_utf_string_dynamic_compare_trim
+.SH SYNOPSIS
+.nf
+.B #include <utf.h>
+.sp
+\fBf_status_t fl_utf_string_dynamic_compare_trim\fP(
+    \fBconst f_utf_string_static_t \fP\fIstring1\fP,
+    \fBconst f_utf_string_static_t \fP\fIstring2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two UTF-8 strings, similar to strncmp().
+.PP
+This does not stop on NULL. NULL characters are ignored. Ignores leading and trailing whitespace.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+Errors (with error bit) from: f_utf_character_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_partial_compare.3 b/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_partial_compare.3
new file mode 100644 (file)
index 0000000..536d9f3
--- /dev/null
@@ -0,0 +1,48 @@
+.TH fl_utf_string_dynamic_partial_compare "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_utf_string_dynamic_partial_compare
+.SH SYNOPSIS
+.nf
+.B #include <utf.h>
+.sp
+\fBf_status_t fl_utf_string_dynamic_partial_compare\fP(
+    \fBconst f_utf_string_static_t \fP\fIstring1\fP,
+    \fBconst f_utf_string_static_t \fP\fIstring2\fP,
+    \fBconst f_string_range_t      \fP\fIrange1\fP,
+    \fBconst f_string_range_t      \fP\fIrange2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two UTF-8 strings, similar to strncmp(), but restricted to the given ranges.
+.PP
+This does not stop on NULL. NULL characters are ignored.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B range1
+A range within the string1 to restrict the comparison to.
+
+.TP
+.B range2
+A range within the string2 to restrict the comparison to.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_partial_compare_trim.3 b/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_partial_compare_trim.3
new file mode 100644 (file)
index 0000000..2b46a02
--- /dev/null
@@ -0,0 +1,50 @@
+.TH fl_utf_string_dynamic_partial_compare_trim "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_utf_string_dynamic_partial_compare_trim
+.SH SYNOPSIS
+.nf
+.B #include <utf.h>
+.sp
+\fBf_status_t fl_utf_string_dynamic_partial_compare_trim\fP(
+    \fBconst f_utf_string_static_t \fP\fIstring1\fP,
+    \fBconst f_utf_string_static_t \fP\fIstring2\fP,
+    \fBconst f_string_range_t      \fP\fIrange1\fP,
+    \fBconst f_string_range_t      \fP\fIrange2\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Compare two UTF-8 strings, similar to strncmp(), but restricted to the given ranges.
+.PP
+This does not stop on NULL. NULL characters are ignored. Ignores leading and trailing whitespace.
+.SH PARAMETERS
+.TP
+.B string1
+String to compare.
+
+.TP
+.B string2
+String to compare.
+
+.TP
+.B range1
+A range within the string1 to restrict the comparison to.
+
+.TP
+.B range2
+A range within the string2 to restrict the comparison to.
+
+.SH RETURN VALUE
+.PP
+\fBF_equal_to\fP when both strings equal.
+.br
+\fBF_equal_to_not\fP when both strings do not equal.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_utf_character_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_rip.3 b/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_rip.3
new file mode 100644 (file)
index 0000000..ae934fd
--- /dev/null
@@ -0,0 +1,47 @@
+.TH fl_utf_string_dynamic_rip "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_utf_string_dynamic_rip
+.SH SYNOPSIS
+.nf
+.B #include <utf.h>
+.sp
+\fBf_status_t fl_utf_string_dynamic_rip\fP(
+    \fBconst f_utf_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t        \fP\fIrange\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Allocate a new UTF-8 string from the provided range in the buffer.
+.PP
+Ignores leading and trailing whitespace. As a result, resulting size may be smaller than requested range.
+.SH PARAMETERS
+.TP
+.B source
+The buffer to rip from.
+
+.TP
+.B range
+A range within the buffer representing the string to rip.
+
+.TP
+.B destination
+The new string, which will be allocated or reallocated as necessary.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_utf_string_append().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_rip_nulless.3 b/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_rip_nulless.3
new file mode 100644 (file)
index 0000000..4b15830
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fl_utf_string_dynamic_rip_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_utf_string_dynamic_rip_nulless
+.SH SYNOPSIS
+.nf
+.B #include <utf.h>
+.sp
+\fBf_status_t fl_utf_string_dynamic_rip_nulless\fP(
+    \fBconst f_utf_string_static_t   \fP\fIsource\fP,
+    \fBconst f_string_range_t        \fP\fIrange\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Allocate a new UTF-8 string from the provided range in the buffer.
+.PP
+Ignores leading and trailing whitespace. As a result, resulting size may be smaller than requested range.
+.PP
+Skips over NULL characters from source when appending.
+.SH PARAMETERS
+.TP
+.B source
+The string to rip from.
+
+.TP
+.B range
+A range within the buffer representing the string to rip.
+
+.TP
+.B destination
+The new string, which will be allocated or reallocated as necessary.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_utf_string_append_nulless().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_seek_line_to_char.3 b/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_seek_line_to_char.3
new file mode 100644 (file)
index 0000000..dade6fb
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fl_utf_string_dynamic_seek_line_to_char "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_utf_string_dynamic_seek_line_to_char
+.SH SYNOPSIS
+.nf
+.B #include <utf.h>
+.sp
+\fBf_status_t fl_utf_string_dynamic_seek_line_to_char\fP(
+    \fBconst f_utf_string_static_t \fP\fIbuffer\fP,
+    \fBf_string_range_t *const     \fP\fIrange\fP,
+    \fBconst f_char_t              \fP\fIseek_to_this\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Seek the buffer location forward until the (1-byte wide) character or EOL is reached.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to traverse.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The start location will be incremented by seek.
+
+.TP
+.B seek_to_this
+A single-width character.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eol\fP on success, but stopped at EOL.
+.br
+\fBF_none_eos\fP on success, but stopped at end of buffer.
+.br
+\fBF_data_not\fP if buffer length is 0.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_seek_line_until_graph.3 b/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_seek_line_until_graph.3
new file mode 100644 (file)
index 0000000..a9ac11a
--- /dev/null
@@ -0,0 +1,51 @@
+.TH fl_utf_string_dynamic_seek_line_until_graph "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_utf_string_dynamic_seek_line_until_graph
+.SH SYNOPSIS
+.nf
+.B #include <utf.h>
+.sp
+\fBf_status_t fl_utf_string_dynamic_seek_line_until_graph\fP(
+    \fBconst f_utf_string_static_t \fP\fIbuffer\fP,
+    \fBf_string_range_t *const     \fP\fIrange\fP,
+    \fBconst f_utf_char_t          \fP\fIplaceholder\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increment buffer location until a graph character or an EOL is matched.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to traverse.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations.
+
+.TP
+.B placeholder
+A UTF-8 character representing a placeholder to ignore (may be NULL).
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eol\fP on success, but stopped at EOL.
+.br
+\fBF_none_eos\fP on success, but stopped at end of buffer.
+.br
+\fBF_data_not\fP if buffer length is 0.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+Errors (with error bit) from: f_utf_character_is_graph().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_seek_line_until_graph_non.3 b/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_seek_line_until_graph_non.3
new file mode 100644 (file)
index 0000000..b3f8c73
--- /dev/null
@@ -0,0 +1,53 @@
+.TH fl_utf_string_dynamic_seek_line_until_graph_non "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_utf_string_dynamic_seek_line_until_graph_non
+.SH SYNOPSIS
+.nf
+.B #include <utf.h>
+.sp
+\fBf_status_t fl_utf_string_dynamic_seek_line_until_graph_non\fP(
+    \fBconst f_utf_string_static_t \fP\fIbuffer\fP,
+    \fBf_string_range_t *const     \fP\fIrange\fP,
+    \fBconst f_utf_char_t          \fP\fIplaceholder\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increment buffer location until a non-graph character or an EOL is matched.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to traverse.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations.
+
+.TP
+.B placeholder
+A single-width character representing a placeholder to ignore (may be NULL).
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eol\fP on success, but stopped at EOL.
+.br
+\fBF_none_eos\fP on success, but stopped at end of buffer.
+.br
+\fBF_none_stop\fP on success, but stopped stop location.
+.br
+\fBF_data_not\fP if buffer length is 0.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+Errors (with error bit) from: f_utf_character_is_graph().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_seek_to_char.3 b/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_dynamic_seek_to_char.3
new file mode 100644 (file)
index 0000000..8e3af87
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fl_utf_string_dynamic_seek_to_char "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_utf_string_dynamic_seek_to_char
+.SH SYNOPSIS
+.nf
+.B #include <utf.h>
+.sp
+\fBf_status_t fl_utf_string_dynamic_seek_to_char\fP(
+    \fBconst f_utf_string_static_t \fP\fIbuffer\fP,
+    \fBf_string_range_t *const     \fP\fIrange\fP,
+    \fBconst f_char_t              \fP\fIseek_to_this\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Seek the buffer location forward until the UTF-8 character (1-byte wide) is reached.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to traverse.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The start location will be incremented by seek.
+
+.TP
+.B seek_to_this
+A single-width non-UTF-8 character.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success, but stopped at end of buffer.
+.br
+\fBF_none_stop\fP on success, but stopped stop location.
+.br
+\fBF_data_not\fP if buffer length is 0.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_rip.3 b/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_rip.3
new file mode 100644 (file)
index 0000000..43afda4
--- /dev/null
@@ -0,0 +1,47 @@
+.TH fl_utf_string_rip "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_utf_string_rip
+.SH SYNOPSIS
+.nf
+.B #include <utf.h>
+.sp
+\fBf_status_t fl_utf_string_rip\fP(
+    \fBconst f_utf_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t        \fP\fIlength\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Allocate a new UTF-8 string from the provided range in the string.
+.PP
+Ignores leading and trailing whitespace. As a result, resulting size may be smaller than requested length.
+.SH PARAMETERS
+.TP
+.B source
+The string to rip from.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The new string, which will be allocated or reallocated as necessary.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+Errors (with error bit) from: f_utf_character_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_rip_nulless.3 b/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_rip_nulless.3
new file mode 100644 (file)
index 0000000..44f1b64
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fl_utf_string_rip_nulless "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_utf_string_rip_nulless
+.SH SYNOPSIS
+.nf
+.B #include <utf.h>
+.sp
+\fBf_status_t fl_utf_string_rip_nulless\fP(
+    \fBconst f_utf_string_t          \fP\fIsource\fP,
+    \fBconst f_array_length_t        \fP\fIlength\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Allocate a new UTF-8 string from the provided range in the string.
+.PP
+Ignores leading and trailing whitespace. As a result, resulting size may be smaller than requested length.
+.PP
+Skips over NULL characters from source when ripping.
+.SH PARAMETERS
+.TP
+.B source
+The string to rip from.
+
+.TP
+.B length
+The length of source to append.
+
+.TP
+.B destination
+The new string, which will be allocated or reallocated as necessary.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if source length is 0.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+Errors (with error bit) from: f_utf_character_is_whitespace().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_seek_line_to_char.3 b/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_seek_line_to_char.3
new file mode 100644 (file)
index 0000000..e2a3cb5
--- /dev/null
@@ -0,0 +1,47 @@
+.TH fl_utf_string_seek_line_to_char "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_utf_string_seek_line_to_char
+.SH SYNOPSIS
+.nf
+.B #include <utf.h>
+.sp
+\fBf_status_t fl_utf_string_seek_line_to_char\fP(
+    \fBconst f_utf_string_t    \fP\fIstring\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP,
+    \fBconst f_char_t          \fP\fIseek_to_this\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Seek the string location forward until the 1-byte wide character or EOL is reached.
+.SH PARAMETERS
+.TP
+.B string
+The string to traverse.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The start location will be incremented by seek.
+
+.TP
+.B seek_to_this
+A single-width character.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eol\fP on success, but stopped at EOL.
+.br
+\fBF_none_eos\fP on success, but stopped at end of buffer.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_seek_line_until_graph.3 b/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_seek_line_until_graph.3
new file mode 100644 (file)
index 0000000..ac5bcaf
--- /dev/null
@@ -0,0 +1,47 @@
+.TH fl_utf_string_seek_line_until_graph "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_utf_string_seek_line_until_graph
+.SH SYNOPSIS
+.nf
+.B #include <utf.h>
+.sp
+\fBf_status_t fl_utf_string_seek_line_until_graph\fP(
+    \fBconst f_utf_string_t    \fP\fIstring\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP,
+    \fBconst f_utf_char_t      \fP\fIplaceholder\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increment string location until a UTF-8 graph character or an EOL is matched.
+.SH PARAMETERS
+.TP
+.B string
+The string to traverse.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The start location will be incremented by seek.
+
+.TP
+.B placeholder
+A UTF-8 character representing a placeholder to ignore (may be NULL).
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eol\fP on success, but stopped at EOL.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+Errors (with error bit) from: f_utf_character_is_graph().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_seek_line_until_graph_non.3 b/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_seek_line_until_graph_non.3
new file mode 100644 (file)
index 0000000..4776192
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fl_utf_string_seek_line_until_graph_non "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_utf_string_seek_line_until_graph_non
+.SH SYNOPSIS
+.nf
+.B #include <utf.h>
+.sp
+\fBf_status_t fl_utf_string_seek_line_until_graph_non\fP(
+    \fBconst f_utf_string_t    \fP\fIstring\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP,
+    \fBconst f_utf_char_t      \fP\fIplaceholder\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Increment string location until a non-graph UTF-8 character or an EOL is matched.
+.SH PARAMETERS
+.TP
+.B string
+The string to traverse.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The start location will be incremented by seek.
+
+.TP
+.B placeholder
+A UTF-8 character representing a placeholder to ignore (may be NULL).
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eol\fP on success, but stopped at EOL.
+.br
+\fBF_none_stop\fP on success, but stopped stop location.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.br
+Errors (with error bit) from: f_utf_character_is_graph().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_seek_to_char.3 b/level_1/fl_utf/data/documentation/man/man3/fl_utf_string_seek_to_char.3
new file mode 100644 (file)
index 0000000..0bb8169
--- /dev/null
@@ -0,0 +1,47 @@
+.TH fl_utf_string_seek_to_char "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_utf_string_seek_to_char
+.SH SYNOPSIS
+.nf
+.B #include <utf.h>
+.sp
+\fBf_status_t fl_utf_string_seek_to_char\fP(
+    \fBconst f_utf_string_t    \fP\fIstring\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP,
+    \fBconst f_char_t          \fP\fIseek_to_this\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Seek the string location forward until the UTF-8 character (up to 4-byte wide) is reached.
+.SH PARAMETERS
+.TP
+.B string
+The string to traverse.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The start location will be incremented by seek.
+
+.TP
+.B seek_to_this
+A single-width non-UTF-8 character.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success, but stopped at end of buffer.
+.br
+\fBF_none_stop\fP on success, but stopped stop location.
+.br
+\fBF_data_not_stop\fP if range.start > range.stop.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_utf_fragment\fP (with error bit) if character is a UTF-8 fragment.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index e93caf30ea6c049309b06323aaf449a0387e3543..36cca866c735fe3f183e47604c9f95e523456f16 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library utf_file.c private-utf_file.c
 
 build_sources_headers utf_file.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_1/fl_utf_file/data/documentation/man/man3/fl_utf_file_read.3 b/level_1/fl_utf_file/data/documentation/man/man3/fl_utf_file_read.3
new file mode 100644 (file)
index 0000000..410356c
--- /dev/null
@@ -0,0 +1,58 @@
+.TH fl_utf_file_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_utf_file_read
+.SH SYNOPSIS
+.nf
+.B #include <utf_file.h>
+.sp
+\fBf_status_t fl_utf_file_read\fP(
+    \fBconst f_file_t                \fP\fIfile\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+UTF-8 File I/O Operations. Read until EOF is reached.
+.PP
+To check how much was read into the destination, record destination->used before execution and compare to destination->used after execution.
+.SH PARAMETERS
+.TP
+.B file
+The file to read. The file must already be open.
+
+.TP
+.B destination
+The destination the file is being read into. The contents of the file is appended into this destination.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eof\fP on success and EOF was reached.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the read would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file\fP (with error bit) if file descriptor is in an error state.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_complete_not_utf_eof\fP (with error bit) if UTF-8 character was incomplete at the end of the file.
+.br
+\fBF_complete_not_utf_stop\fP (with error bit) if UTF-8 character was incomplete at a stop point (file.size_read).
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_utf_file/data/documentation/man/man3/fl_utf_file_read_block.3 b/level_1/fl_utf_file/data/documentation/man/man3/fl_utf_file_read_block.3
new file mode 100644 (file)
index 0000000..b18bf99
--- /dev/null
@@ -0,0 +1,58 @@
+.TH fl_utf_file_read_block "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_utf_file_read_block
+.SH SYNOPSIS
+.nf
+.B #include <utf_file.h>
+.sp
+\fBf_status_t fl_utf_file_read_block\fP(
+    \fBconst f_file_t                \fP\fIfile\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Read until a single block is filled or EOF is reached.
+.PP
+To check how much was read into the destination, record destination->used before execution and compare to destination->used after execution.
+.SH PARAMETERS
+.TP
+.B file
+The file to read. The file must already be open.
+
+.TP
+.B destination
+The destination the file is being read into. The contents of the file is appended into this destination.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eof\fP on success and EOF was reached.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the read would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file\fP (with error bit) if file descriptor is in an error state.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_complete_not_utf_eof\fP (with error bit) if UTF-8 character was incomplete at the end of the file.
+.br
+\fBF_complete_not_utf_stop\fP (with error bit) if UTF-8 character was incomplete at a stop point (file.size_read).
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_utf_file/data/documentation/man/man3/fl_utf_file_read_until.3 b/level_1/fl_utf_file/data/documentation/man/man3/fl_utf_file_read_until.3
new file mode 100644 (file)
index 0000000..30a6da4
--- /dev/null
@@ -0,0 +1,63 @@
+.TH fl_utf_file_read_until "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_utf_file_read_until
+.SH SYNOPSIS
+.nf
+.B #include <utf_file.h>
+.sp
+\fBf_status_t fl_utf_file_read_until\fP(
+    \fBconst f_file_t                \fP\fIfile\fP,
+    \fBconst f_array_length_t        \fP\fItotal\fP,
+    \fBf_utf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Read until a given number or EOF is reached, storing it in the destination.
+.PP
+To check how much was read into the destination, record destination->used before execution and compare to destination->used after execution.
+.SH PARAMETERS
+.TP
+.B file
+The file to read. The file must already be open.
+
+.TP
+.B total
+The total bytes to read, unless EOF is reached first.
+
+.TP
+.B destination
+The destination the file is being read into.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eof\fP on success and EOF was reached.
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the read would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file\fP (with error bit) if file descriptor is in an error state.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_complete_not_utf_eof\fP (with error bit) if UTF-8 character was incomplete at the end of the file.
+.br
+\fBF_complete_not_utf_stop\fP (with error bit) if UTF-8 character was incomplete at a stop point (file.size_read).
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_utf_file/data/documentation/man/man3/fl_utf_file_write.3 b/level_1/fl_utf_file/data/documentation/man/man3/fl_utf_file_write.3
new file mode 100644 (file)
index 0000000..21bfb51
--- /dev/null
@@ -0,0 +1,61 @@
+.TH fl_utf_file_write "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_utf_file_write
+.SH SYNOPSIS
+.nf
+.B #include <utf_file.h>
+.sp
+\fBf_status_t fl_utf_file_write\fP(
+    \fBconst f_file_t              \fP\fIfile\fP,
+    \fBconst f_utf_string_static_t \fP\fIdestination\fP,
+    \fBf_array_length_t *const     \fP\fIwritten\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write until entire destination is written.
+.SH PARAMETERS
+.TP
+.B file
+The file to write to. The file must already be open.
+
+.TP
+.B destination
+The destination to write to the file.
+
+.TP
+.B written
+The total bytes written.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success but range.stop exceeded destination.used (only wrote up to destination.used).
+.br
+\fBF_none_stop\fP on success but no data was written (written == 0) (not an error and often happens if file type is not a regular file).
+.br
+\fBF_complete_not_utf_stop\fP if max write was reached but was unable to completely write a given UTF-8 block (incomplete UTF-8 is not written, not even partially).
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file\fP (with error bit) if file descriptor is in an error state.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_utf_file/data/documentation/man/man3/fl_utf_file_write_block.3 b/level_1/fl_utf_file/data/documentation/man/man3/fl_utf_file_write_block.3
new file mode 100644 (file)
index 0000000..80f0072
--- /dev/null
@@ -0,0 +1,63 @@
+.TH fl_utf_file_write_block "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_utf_file_write_block
+.SH SYNOPSIS
+.nf
+.B #include <utf_file.h>
+.sp
+\fBf_status_t fl_utf_file_write_block\fP(
+    \fBconst f_file_t              \fP\fIfile\fP,
+    \fBconst f_utf_string_static_t \fP\fIdestination\fP,
+    \fBf_array_length_t *const     \fP\fIwritten\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write until a single block is filled or entire destination is written.
+.PP
+To check how much was write into the destination, record destination->used before execution and compare to destination->used after execution.
+.SH PARAMETERS
+.TP
+.B file
+The file to write to. The file must already be open.
+
+.TP
+.B destination
+The destination to write to the file.
+
+.TP
+.B written
+The total bytes written.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success but range.stop exceeded destination.used (only wrote up to destination.used).
+.br
+\fBF_none_stop\fP on success but no data was written (written == 0) (not an error and often happens if file type is not a regular file).
+.br
+\fBF_complete_not_utf_stop\fP if max write was reached but was unable to completely write a given UTF-8 block (incomplete UTF-8 is not written, not even partially).
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file\fP (with error bit) if file descriptor is in an error state.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_utf_file/data/documentation/man/man3/fl_utf_file_write_range.3 b/level_1/fl_utf_file/data/documentation/man/man3/fl_utf_file_write_range.3
new file mode 100644 (file)
index 0000000..ee0113d
--- /dev/null
@@ -0,0 +1,65 @@
+.TH fl_utf_file_write_range "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_utf_file_write_range
+.SH SYNOPSIS
+.nf
+.B #include <utf_file.h>
+.sp
+\fBf_status_t fl_utf_file_write_range\fP(
+    \fBconst f_file_t              \fP\fIfile\fP,
+    \fBconst f_utf_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t      \fP\fIrange\fP,
+    \fBf_array_length_t *const     \fP\fIwritten\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write a given range within the destination.
+.SH PARAMETERS
+.TP
+.B file
+The file to write to. The file must already be open.
+
+.TP
+.B buffer
+
+.TP
+.B range
+An inclusive start an stop range within the destination to read.
+
+.TP
+.B written
+The total bytes written.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success but range.stop exceeded destination.used (only wrote up to destination.used).
+.br
+\fBF_none_stop\fP on success but no data was written (written == 0) (not an error and often happens if file type is not a regular file).
+.br
+\fBF_complete_not_utf_stop\fP if max write was reached but was unable to completely write a given UTF-8 block (incomplete UTF-8 is not written, not even partially).
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file\fP (with error bit) if file descriptor is in an error state.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_1/fl_utf_file/data/documentation/man/man3/fl_utf_file_write_until.3 b/level_1/fl_utf_file/data/documentation/man/man3/fl_utf_file_write_until.3
new file mode 100644 (file)
index 0000000..0d3a065
--- /dev/null
@@ -0,0 +1,66 @@
+.TH fl_utf_file_write_until "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fl_utf_file_write_until
+.SH SYNOPSIS
+.nf
+.B #include <utf_file.h>
+.sp
+\fBf_status_t fl_utf_file_write_until\fP(
+    \fBconst f_file_t              \fP\fIfile\fP,
+    \fBconst f_utf_string_static_t \fP\fIdestination\fP,
+    \fBconst f_array_length_t      \fP\fItotal\fP,
+    \fBf_array_length_t *const     \fP\fIwritten\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write until a given number or entire destination is written.
+.SH PARAMETERS
+.TP
+.B file
+The file to write to. The file must already be open.
+
+.TP
+.B destination
+The destination to write to the file.
+
+.TP
+.B total
+The total bytes to write, unless end of destination is reached first.
+
+.TP
+.B written
+The total bytes written.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success but range.stop exceeded destination.used (only wrote up to destination.used).
+.br
+\fBF_none_stop\fP on success but no data was written (written == 0) (not an error and often happens if file type is not a regular file).
+.br
+\fBF_complete_not_utf_stop\fP if max write was reached but was unable to completely write a given UTF-8 block (incomplete UTF-8 is not written, not even partially).
+.br
+\fBF_block\fP (with error bit) if file descriptor is set to non-block and the write would result in a blocking operation.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_file\fP (with error bit) if file descriptor is in an error state.
+.br
+\fBF_file_closed\fP (with error bit) if file is not open.
+.br
+\fBF_file_descriptor\fP (with error bit) if the file descriptor is invalid.
+.br
+\fBF_file_type_directory\fP (with error bit) if file descriptor represents a directory.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_interrupt\fP (with error bit) if interrupt was received.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index 76b640572c34eb677cc92e691cec2de0bafe4bd9..1d2be9cf78f0427c1ea5e7005764045d91928cde 100644 (file)
@@ -35,6 +35,8 @@ build_sources_library control_group.c
 
 build_sources_headers control_group.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_2/fll_control_group/data/documentation/man/man3/fll_control_group_prepare.3 b/level_2/fll_control_group/data/documentation/man/man3/fll_control_group_prepare.3
new file mode 100644 (file)
index 0000000..b0d6305
--- /dev/null
@@ -0,0 +1,30 @@
+.TH fll_control_group_prepare "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_control_group_prepare
+.SH SYNOPSIS
+.nf
+.B #include <control_group.h>
+.sp
+\fBf_status_t fll_control_group_prepare\fP(
+    \fBconst f_control_group_t \fP\fIcontrol_group\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provides control group (cgroup) related functionality. Make sure all directories specified in groups exist, creating all directories in the path.
+.PP
+This does not, however, create the control_group.path and will error out if that directory does not exist.
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_directory_not\fP (with error bit) if control_group.path does not exist.
+.br
+Errors (with error bit) from: f_directory_exists().
+.br
+Errors (with error bit) from: fl_directory_create().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index f35aa318bea1bb43edfd80306ad94d88a254f12b..9990fbeb1640be90c499fb373f357b06fb42e47f 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library error.c private-error.c error/common.c
 
 build_sources_headers error.h error/common.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_2/fll_error/data/documentation/man/man3/fll_error_file_print.3 b/level_2/fll_error/data/documentation/man/man3/fll_error_file_print.3
new file mode 100644 (file)
index 0000000..fdc1d97
--- /dev/null
@@ -0,0 +1,59 @@
+.TH fll_error_file_print "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_error_file_print
+.SH SYNOPSIS
+.nf
+.B #include <error.h>
+.sp
+\fBf_status_t fll_error_file_print\fP(
+    \fBconst fl_print_t        \fP\fIprint\fP,
+    \fBconst f_status_t        \fP\fIstatus\fP,
+    \fBconst char             *\fP\fIfunction\fP,
+    \fBconst bool              \fP\fIfallback\fP,
+    \fBconst f_string_static_t \fP\fIname\fP,
+    \fBconst f_string_static_t \fP\fIoperation\fP,
+    \fBconst uint8_t           \fP\fItype\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print file related error or warning messages.
+.SH PARAMETERS
+.TP
+.B print
+Designates how printing is to be performed.
+
+.TP
+.B status
+The status code to process. Make sure this has F_status_set_fine() called if the status code has any error or warning bits.
+
+.TP
+.B function
+The name of the function where the error happened. Set to 0 to disable.
+
+.TP
+.B fallback
+Set to F_true to print the fallback error message for unknown errors.
+
+.TP
+.B name
+The name of the file or directory.
+
+.TP
+.B operation
+The operation that fails, such as 'create' or 'access'.
+
+.TP
+.B type
+A valid file type code from the fll_error_file_type enum.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP is returned if the status code has no print message.
+.br
+\fBF_false\fP is returned on successful print of known errors.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_error/data/documentation/man/man3/fll_error_parameter_integer_print.3 b/level_2/fll_error/data/documentation/man/man3/fll_error_parameter_integer_print.3
new file mode 100644 (file)
index 0000000..b4a1fa6
--- /dev/null
@@ -0,0 +1,54 @@
+.TH fll_error_parameter_integer_print "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_error_parameter_integer_print
+.SH SYNOPSIS
+.nf
+.B #include <error.h>
+.sp
+\fBf_status_t fll_error_parameter_integer_print\fP(
+    \fBconst fl_print_t        \fP\fIprint\fP,
+    \fBconst f_status_t        \fP\fIstatus\fP,
+    \fBconst char             *\fP\fIfunction\fP,
+    \fBconst bool              \fP\fIfallback\fP,
+    \fBconst f_string_static_t \fP\fIparameter\fP,
+    \fBconst f_string_static_t \fP\fIargument\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print integer related error or warning messages.
+.SH PARAMETERS
+.TP
+.B print
+Designates how printing is to be performed.
+
+.TP
+.B status
+The status code to process. Make sure this has F_status_set_fine() called if the status code has any error or warning bits.
+
+.TP
+.B function
+The name of the function where the error happened. Set to 0 to disable.
+
+.TP
+.B fallback
+Set to F_true to print the fallback error message for unknown errors.
+
+.TP
+.B parameter
+The name of the parameter.
+
+.TP
+.B argument
+The argument associated with the given parameter.
+
+.SH RETURN VALUE
+.PP
+\fBF_true\fP is returned if the status code has no print message.
+.br
+\fBF_false\fP is returned on successful print of known errors.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_error/data/documentation/man/man3/fll_error_print.3 b/level_2/fll_error/data/documentation/man/man3/fll_error_print.3
new file mode 100644 (file)
index 0000000..271e6ce
--- /dev/null
@@ -0,0 +1,44 @@
+.TH fll_error_print "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_error_print
+.SH SYNOPSIS
+.nf
+.B #include <error.h>
+.sp
+\fBf_status_t fll_error_print\fP(
+    \fBconst fl_print_t \fP\fIprint\fP,
+    \fBconst f_status_t \fP\fIstatus\fP,
+    \fBconst char      *\fP\fIfunction\fP,
+    \fBconst bool       \fP\fIfallback\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provide functions commonly used by FLL based programs. Print generic error or warning messages.
+.SH PARAMETERS
+.TP
+.B print
+Designates how printing is to be performed.
+
+.TP
+.B status
+The status code to process. Make sure this has F_status_set_fine() called if the status code has any error or warning bits.
+
+.TP
+.B function
+The name of the function where the error happened. Set to 0 to disable.
+
+.TP
+.B fallback
+Set to F_true to print the fallback error message for unknown errors.
+
+.SH RETURN VALUE
+.PP
+\fBF_false\fP is returned on successful print of known errors.
+.br
+\fBF_true\fP is returned if the status code is unknown.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index acbd08bd16a4e50c97f527b9e4ff2551bc3e1b04..dfe52cad7e02eda47dd95384ee0b799f1cbbc1f3 100644 (file)
@@ -37,6 +37,8 @@ build_sources_library execute.c private-execute.c
 
 build_sources_headers execute.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_2/fll_execute/data/documentation/man/man3/fll_execute_arguments_add.3 b/level_2/fll_execute/data/documentation/man/man3/fll_execute_arguments_add.3
new file mode 100644 (file)
index 0000000..d9db410
--- /dev/null
@@ -0,0 +1,40 @@
+.TH fll_execute_arguments_add "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_execute_arguments_add
+.SH SYNOPSIS
+.nf
+.B #include <execute.h>
+.sp
+\fBf_status_t fll_execute_arguments_add\fP(
+    \fBconst f_string_static_t    \fP\fIsource\fP,
+    \fBf_string_dynamics_t *const \fP\fIarguments\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Add an argument to the execution arguments array.
+.PP
+This guarantees that a NULL exists at the end of the string (after the source.used length). This does not check for NULL characters anywhere else in the string.
+.SH PARAMETERS
+.TP
+.B source
+The string to add to the arguments array.
+
+.TP
+.B arguments
+The array of string arguments intended to pass to the execute functions.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+Errors (with error bit) from: f_string_dynamic_append().
+.br
+Errors (with error bit) from: f_string_dynamic_resize().
+.br
+Errors (with error bit) from: f_string_dynamics_increase().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_execute/data/documentation/man/man3/fll_execute_arguments_add_parameter.3 b/level_2/fll_execute/data/documentation/man/man3/fll_execute_arguments_add_parameter.3
new file mode 100644 (file)
index 0000000..ec2b65e
--- /dev/null
@@ -0,0 +1,54 @@
+.TH fll_execute_arguments_add_parameter "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_execute_arguments_add_parameter
+.SH SYNOPSIS
+.nf
+.B #include <execute.h>
+.sp
+\fBf_status_t fll_execute_arguments_add_parameter\fP(
+    \fBconst f_string_static_t    \fP\fIprefix\fP,
+    \fBconst f_string_static_t    \fP\fIname\fP,
+    \fBconst f_string_static_t    \fP\fIvalue\fP,
+    \fBf_string_dynamics_t *const \fP\fIarguments\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Add parameters as arguments to the execution arguments array.
+.PP
+This is intended to simplify adding arguments that have prefixes and values such as those common in console parameters. For example, a pefix of '', a name of 'do', and a value of 'something' would result in two arguments added: 'do' and 'something'.
+.PP
+The arguments are only appended if the length of name and value are not 0.
+.PP
+This guarantees that NULL exists at the end of each argument (after the argumunets[..].used length). This does not check for NULL characters anywhere else in the string.
+.SH PARAMETERS
+.TP
+.B prefix
+The string prepend to the name.
+
+.TP
+.B name
+The string to add to the arguments array.
+
+.TP
+.B value
+The string to add to the arguments array.
+
+.TP
+.B arguments
+The array of string arguments intended to pass to the execute functions.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+Errors (with error bit) from: f_string_append().
+.br
+Errors (with error bit) from: f_string_dynamic_resize().
+.br
+Errors (with error bit) from: f_string_dynamics_increase().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_execute/data/documentation/man/man3/fll_execute_arguments_add_parameter_set.3 b/level_2/fll_execute/data/documentation/man/man3/fll_execute_arguments_add_parameter_set.3
new file mode 100644 (file)
index 0000000..261aa84
--- /dev/null
@@ -0,0 +1,59 @@
+.TH fll_execute_arguments_add_parameter_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_execute_arguments_add_parameter_set
+.SH SYNOPSIS
+.nf
+.B #include <execute.h>
+.sp
+\fBf_status_t fll_execute_arguments_add_parameter_set\fP(
+    \fBconst f_string_static_t    \fP\fIprefix\fP,
+    \fBconst f_string_static_t    \fP\fIname\fP,
+    \fBconst f_string_static_t    \fP\fIvalue\fP,
+    \fBconst f_array_length_t     \fP\fIsize\fP,
+    \fBf_string_dynamics_t *const \fP\fIarguments\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Add set of parameters as arguments to the execution arguments array.
+.PP
+This is intended to simplify adding arguments that have prefixes and values such as those common in console parameters. For example, a pefix of '', a name of 'do', and a value of 'something' would result in two arguments added: 'do' and 'something'.
+.PP
+The arguments are only appended if the length of name and value are not 0.
+.PP
+This guarantees that NULL exists at the end of each argument (after the argumunets[..].used length). This does not check for NULL characters anywhere else in the string.
+.SH PARAMETERS
+.TP
+.B prefix
+An array of the strings prepend to the name.
+
+.TP
+.B name
+An array of the strings to add to the arguments array.
+
+.TP
+.B value
+An array of the strings to add to the arguments array.
+
+.TP
+.B size
+The array size of prefix, prefix_length, name, name_length, value, and value_length (all of which must be of the same array size).
+
+.TP
+.B arguments
+The array of string arguments intended to pass to the execute functions.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+Errors (with error bit) from: f_string_append().
+.br
+Errors (with error bit) from: f_string_dynamic_resize().
+.br
+Errors (with error bit) from: f_string_dynamics_increase().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_execute/data/documentation/man/man3/fll_execute_arguments_add_set.3 b/level_2/fll_execute/data/documentation/man/man3/fll_execute_arguments_add_set.3
new file mode 100644 (file)
index 0000000..5beb3c0
--- /dev/null
@@ -0,0 +1,45 @@
+.TH fll_execute_arguments_add_set "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_execute_arguments_add_set
+.SH SYNOPSIS
+.nf
+.B #include <execute.h>
+.sp
+\fBf_status_t fll_execute_arguments_add_set\fP(
+    \fBconst f_string_static_t \fP\fIsource\fP,
+    \fBconst f_array_length_t  \fP\fIsize\fP,
+    \fBf_string_dynamics_t    *\fP\fIarguments\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Add a set of arguments to the execution arguments array.
+.PP
+This guarantees that NULL exists at the end of each argument (after the argumunets[..].used length). This does not check for NULL characters anywhere else in the string.
+.SH PARAMETERS
+.TP
+.B source
+An array of strings to add to the arguments array.
+
+.TP
+.B size
+The array size of source and length (all of which must be of the same array size).
+
+.TP
+.B arguments
+The array of string arguments intended to pass to the execute functions.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+Errors (with error bit) from: f_string_append().
+.br
+Errors (with error bit) from: f_string_dynamic_resize().
+.br
+Errors (with error bit) from: f_string_dynamics_increase().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_execute/data/documentation/man/man3/fll_execute_into.3 b/level_2/fll_execute/data/documentation/man/man3/fll_execute_into.3
new file mode 100644 (file)
index 0000000..2b8e853
--- /dev/null
@@ -0,0 +1,59 @@
+.TH fll_execute_into "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_execute_into
+.SH SYNOPSIS
+.nf
+.B #include <execute.h>
+.sp
+\fBf_status_t fll_execute_into\fP(
+    \fBconst f_string_static_t      \fP\fIprogram\fP,
+    \fBconst f_string_statics_t     \fP\fIarguments\fP,
+    \fBconst uint8_t                \fP\fIoption\fP,
+    \fBconst f_string_maps_t *const \fP\fIenvironment\fP,
+    \fBint *const                   \fP\fIresult\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Execute a program given by program name found in the PATH environment (such as "bash") or program path (such as "/bin/bash").
+.PP
+The program will be executed directly and not via a child process.
+.PP
+Because this directly executes a program, it potentially may not return. If and when it does, the executed program is finished executing (be it failure or success). Often times scripts may return and binaries may not.
+.SH PARAMETERS
+.TP
+.B program
+The name or path of the program. Set to NULL, to designate that arguments[0] is the program name or path.
+
+.TP
+.B arguments
+An array of strings representing the arguments.
+
+.TP
+.B option
+A bitwise set of options, such as: FL_execute_parameter_option_exit_d and FL_execute_parameter_option_path_d. If FL_execute_parameter_option_exit_d: this will call exit() at the end of execution (be it success or failure). If FL_execute_parameter_option_path_d: use the whole program path (such as "/bin/bash" instead "bash" when populating argument[0]. If FL_execute_parameter_option_session_d: will start a new session, setting process group id.
+
+.TP
+.B environment
+(optional) An map of strings representing the environment variable names and their respective values. Completely clears the environment and then creates environment variables for each name and value pair in this map. Set to an empty map (set map used length to 0). Set to NULL to not make any changes to the environment. Be careful, when executing without the full path (such as "bash" rather than "/bin/bash") either set this to NULL or be sure to include the PATH in this map. Be careful, scripts might return and the environment will have changed when this is not NULL. Be careful, if this returns F_failure, the environment will have changed when this is not NULL.
+
+.TP
+.B result
+The code returned after finishing execution of program.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_failure\fP (with error bit) on execution failure.
+.br
+Errors (with error bit) from: f_environment_get().
+.br
+Errors (with error bit) from: f_string_dynamic_append().
+.br
+Errors (with error bit) from: fl_environment_path_explode().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_execute/data/documentation/man/man3/fll_execute_program.3 b/level_2/fll_execute/data/documentation/man/man3/fll_execute_program.3
new file mode 100644 (file)
index 0000000..37013ec
--- /dev/null
@@ -0,0 +1,117 @@
+.TH fll_execute_program "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_execute_program
+.SH SYNOPSIS
+.nf
+.B #include <execute.h>
+.sp
+\fBf_status_t fll_execute_program\fP(
+    \fBconst f_string_static_t       \fP\fIprogram\fP,
+    \fBconst f_string_statics_t      \fP\fIarguments\fP,
+    \fBfl_execute_parameter_t *const \fP\fIparameter\fP,
+    \fBfl_execute_as_t *const        \fP\fIas\fP,
+    \fBvoid *const                   \fP\fIresult\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Execute a program given by program name found in the PATH environment (such as "bash") or program path (such as "/bin/bash").
+.PP
+The program will be executed via a forked child process.
+.PP
+When the path has a slash "/" or the environment is to be cleared, then this does validate the path to the program. Otherwise, this does not validate the path to the program.
+.PP
+When the parameter.option has the FL_execute_parameter_option_exit_d bit set, then this calls exit() when the child process returns. Otherwise, this returns
+.SH PARAMETERS
+.TP
+.B program
+The name or path of the program. Set to NULL, to designate that arguments[0] is the program name or path.
+
+.TP
+.B arguments
+An array of strings representing the arguments.
+
+.TP
+.B parameter
+(optional) This and most of its fields are optional and are disabled when set to 0. option: A bitwise set of options, such as: FL_execute_parameter_option_exit_d and FL_execute_parameter_option_path_d. environment: An map of strings representing the environment variable names and their respective values. Completely clears the environment and then creates environment variables for each name and value pair in this map. Set to an empty map (set map used length to 0). Set to NULL to not make any changes to the environment. values: An array of strings representing the environment variable names. The values.used must be of at least names.used. Set individual strings.used to 0 for empty/null values. signals: A pointer to the set of signals to have the child process block or not block. When not specified, the child process uses the signal blocking behavior of the parent process. data: A pointer to a string to pipe as standard input to the child process. The parent will block until the standard input is fully read or the child process exits.
+
+.TP
+.B as
+(optional) This and most of its fields are optional and are disabled when set to NULL.
+
+.TP
+.B result
+(optional) The execute status code returned after finishing or attempting to finish execution of program. When FL_execute_parameter_option_return_d is passed via parameter.option, then this instead stores the child process id (PID). This is should be of (int *) except when FL_execute_parameter_option_return_d this should instead be (pid_t *). Set to NULL to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_child\fP on success and this is the child thread.
+.br
+\fBF_parent\fP on success and this is the parent thread (only happens when FL_execute_parameter_option_return_d is passed).
+.br
+\fBF_child\fP and assigns the child's return code to result for the child process. The caller is expected to handle the appropriate exit procedures and memory deallocation for the child process when
+.br
+\fBF_child\fP is returned.
+.PP
+This returns F_capability, F_group, and
+.br
+\fBF_user\fP only by the child process and must be treated the same as
+.br
+\fBF_child\fP for the purposes of understanding what the current process is. These are essentialy
+.br
+\fBF_child\fP with explicit error codes that are returned instead of performing the desired execution.
+.PP
+This returns F_control_group, F_limit, F_processor, and
+.br
+\fBF_schedule\fP only by the parent process and represents that the child process could not be executed.
+.br
+\fBF_capability\fP (with error bit) on failure to set capabilities in the child (only the child process returns this).
+.br
+\fBF_control_group\fP (with error bit) on failure to set control group in the child (only the parent process returns this).
+.br
+\fBF_child\fP (with error bit) on any failure without an explicit failure code (like F_group) before calling execute but this is the child thread.
+.br
+\fBF_failure\fP (with error bit) on execution failure.
+.br
+\fBF_fork\fP (with error bit) on fork failure.
+.br
+\fBF_group\fP (with error bit) on failure to set GID in the child (only the child process returns this).
+.br
+\fBF_limit\fP (with error bit) on failure to set a resource limit in the child (only the parent process returns this).
+.br
+\fBF_nice\fP (with error bit) on failure to set process niceness in the child (only the child process returns this).
+.br
+\fBF_pipe\fP (with error bit) on pipe failure.
+.br
+\fBF_processor\fP (with error bit) on failure to set a processor (cpu) affinity in the child (only the parent process returns this).
+.br
+\fBF_schedule\fP (with error bit) on failure to set scheduler in the child (only the parent process returns this).
+.br
+\fBF_user\fP (with error bit) on failure to set UID in the child (only the child process returns this).
+.br
+Errors (with error bit) from: f_capability_process_set().
+.br
+Errors (with error bit) from: f_environment_get().
+.br
+Errors (with error bit) from: f_file_exists().
+.br
+Errors (with error bit) from: f_limit_process().
+.br
+Errors (with error bit) from: f_signal_mask().
+.br
+Errors (with error bit) from: f_string_append().
+.br
+Errors (with error bit) from: f_string_dynamic_resize().
+.br
+Errors (with error bit) from: f_string_dynamics_resize().
+.br
+Errors (with error bit) from: f_thread_signal_mask().
+.br
+Errors (with error bit) from: fl_environment_path_explode().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index 57709322aedb596b2505aa3d12ea6937956bcb4a..3c99af3b27b770e21c9afff6db2f2f2dd29d135b 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library file.c private-file.c
 
 build_sources_headers file.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_2/fll_file/data/documentation/man/man3/fll_file_mode_set_all.3 b/level_2/fll_file/data/documentation/man/man3/fll_file_mode_set_all.3
new file mode 100644 (file)
index 0000000..f880037
--- /dev/null
@@ -0,0 +1,76 @@
+.TH fll_file_mode_set_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_file_mode_set_all
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t fll_file_mode_set_all\fP(
+    \fBconst f_string_static_t   \fP\fIpath\fP,
+    \fBconst bool                \fP\fIdereference\fP,
+    \fBconst mode_t              \fP\fImode\fP,
+    \fBconst f_number_unsigned_t \fP\fIdepth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provides file-related functionality. Change mode of a given file or directory at the specified path.
+.PP
+This does not set mode based on umask(), be sure to apply umask if so desired. (such as: mode & ~mask).
+.PP
+If the file is a directory then recurse into that directory and apply mode to all files within.
+.SH PARAMETERS
+.TP
+.B path
+The path file name.
+
+.TP
+.B dereference
+Set to TRUE to dereference symlinks (often is what is desired). Set to FALSE to operate on the symlink itself.
+
+.TP
+.B mode
+The new mode to use.
+
+.TP
+.B depth_max
+The max recursion depth.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if path.used is 0.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_access_mode\fP (with error bit) if the current user does not have access to assign the file mode.
+.br
+\fBF_directory\fP (with error bit) on invalid directory.
+.br
+\fBF_file_found_not\fP (with error bit) if file at path was not found.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_read_only\fP (with error bit) if file is read-only.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.br
+Errors (with error bit) from: f_file_mode_set().
+.br
+Errors (with error bit) from: f_directory_exists().
+.br
+Errors (with error bit) from: fl_directory_list().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_file/data/documentation/man/man3/fll_file_move.3 b/level_2/fll_file/data/documentation/man/man3/fll_file_move.3
new file mode 100644 (file)
index 0000000..83355ef
--- /dev/null
@@ -0,0 +1,87 @@
+.TH fll_file_move "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_file_move
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t fll_file_move\fP(
+    \fBconst f_string_static_t      \fP\fIsource\fP,
+    \fBconst f_string_static_t      \fP\fIdestination\fP,
+    \fBconst fl_directory_recurse_t \fP\fIrecurse\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Move a file.
+.PP
+The paths must not contain NULL except for the terminating NULL. The paths must be NULL terminated.
+.PP
+This attempts to rename a file but if the file is on another file system then it tries to clone the file or directory. If the file or directory is cloned, then the original is deleted after a successful copy.
+.PP
+When this calls the additional functions, if the clone succeeds but the remove fails the source may exist. Therefore, if there is an error during remove, then the file should be checked for existence and possibly be manually removed.
+.SH PARAMETERS
+.TP
+.B source
+The path to the file to copy from.
+
+.TP
+.B destination
+The path to copy to.
+
+.TP
+.B recurse
+The directory recurse data.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_busy\fP (with error bit) if file system is too busy to perform write.
+.br
+\fBF_directory\fP (with error bit) if a supposed directory in path is not actually a directory.
+.br
+\fBF_directory_empty_not\fP (with error bit) if the destination is a non-empty directory.
+.br
+\fBF_file_found_not\fP (with error bit) if file at path was not found.
+.br
+\fBF_file_type_directory\fP (with error bit) if destination is a directory but source is not.
+.br
+\fBF_filesystem_quota_block\fP (with error bit) if file system's disk blocks or inodes are exhausted.
+.br
+\fBF_link\fP (with error bit) if source or destination has the maxiumum associated links.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_prohibited\fP (with error bit) if file system does not allow for making changes.
+.br
+\fBF_read_only\fP (with error bit) if file is read-only.
+.br
+\fBF_space_not\fP (with error bit) if file system is out of space (or file system quota is reached).
+.br
+\fBF_failure\fP (with error bit) for any other error, failures might be populated with individual status codes.
+.br
+Errors (with error bit) from: f_directory_remove_custom().
+.br
+Errors (with error bit) from: f_file_is().
+.br
+Errors (with error bit) from: f_file_remove().
+.br
+Errors (with error bit) from: f_file_rename().
+.br
+Errors (with error bit) from: fl_directory_clone().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_file/data/documentation/man/man3/fll_file_role_change_all.3 b/level_2/fll_file/data/documentation/man/man3/fll_file_role_change_all.3
new file mode 100644 (file)
index 0000000..960c78d
--- /dev/null
@@ -0,0 +1,83 @@
+.TH fll_file_role_change_all "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_file_role_change_all
+.SH SYNOPSIS
+.nf
+.B #include <file.h>
+.sp
+\fBf_status_t fll_file_role_change_all\fP(
+    \fBconst f_string_static_t   \fP\fIpath\fP,
+    \fBconst uid_t               \fP\fIuid\fP,
+    \fBconst gid_t               \fP\fIgid\fP,
+    \fBconst bool                \fP\fIdereference\fP,
+    \fBconst f_number_unsigned_t \fP\fIdepth_max\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Change owner and/or group of a given file at the specified path.
+.PP
+At least one of uid or gid must not be -1.
+.PP
+If the file is a directory then recurse into that directory and apply mode to all files within.
+.SH PARAMETERS
+.TP
+.B path
+The path file name.
+
+.TP
+.B uid
+The new user id to use. Set to -1 to not change.
+
+.TP
+.B gid
+The new group id to use. Set to -1 to not change.
+
+.TP
+.B dereference
+Set to TRUE to dereferenc symlinks (often is what is desired). Set to FALSE to operate on the symlink itself.
+
+.TP
+.B depth_max
+The max recursion depth.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_access_denied\fP (with error bit) on access denied.
+.br
+\fBF_access_group\fP (with error bit) if the current user does not have access to assign the specified group.
+.br
+\fBF_access_owner\fP (with error bit) if the current user does not have access to assign the specified owner.
+.br
+\fBF_buffer\fP (with error bit) if the buffer is invalid.
+.br
+\fBF_directory\fP (with error bit) on invalid directory.
+.br
+\fBF_file_found_not\fP (with error bit) if file at path was not found.
+.br
+\fBF_input_output\fP (with error bit) on I/O error.
+.br
+\fBF_loop\fP (with error bit) on loop error.
+.br
+\fBF_memory_not\fP (with error bit) if out of memory.
+.br
+\fBF_name\fP (with error bit) on path name error.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_read_only\fP (with error bit) if file is read-only.
+.br
+\fBF_failure\fP (with error bit) for any other error.
+.br
+Errors (with error bit) from: f_directory_is().
+.br
+Errors (with error bit) from: f_file_role_change().
+.br
+Errors (with error bit) from: fl_directory_list().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index 0737c8192a13e8b668feea6a4973c63a23b72822..4eb49dfa4b2348e8ca26ac28cc085e23ee2b34be 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library fss.c fss/basic.c fss/basic_list.c fss/embedded_list.c fss
 
 build_sources_headers fss.h fss/basic.h fss/basic_list.h fss/embedded_list.h fss/extended.h fss/extended_list.h fss/payload.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_2/fll_fss/data/documentation/man/man3/fll_fss_basic_list_read.3 b/level_2/fll_fss/data/documentation/man/man3/fll_fss_basic_list_read.3
new file mode 100644 (file)
index 0000000..9054841
--- /dev/null
@@ -0,0 +1,84 @@
+.TH fll_fss_basic_list_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_fss_basic_list_read
+.SH SYNOPSIS
+.nf
+.B #include <basic_list.h>
+.sp
+\fBf_status_t fll_fss_basic_list_read\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_state_t               \fP\fIstate\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP,
+    \fBf_fss_objects_t *const  \fP\fIobjects\fP,
+    \fBf_fss_contents_t *const \fP\fIcontents\fP,
+    \fBf_fss_delimits_t *const \fP\fIobjects_delimits\fP,
+    \fBf_fss_delimits_t *const \fP\fIcontents_delimits\fP,
+    \fBf_fss_comments_t *const \fP\fIcomments\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is the fss-0002 implementation. Read a buffer expected to be in fss-0002 format, getting all objects and their respective content.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The range within the buffer that is currently being read.
+
+.TP
+.B objects
+This will be populated with all valid objects found.
+
+.TP
+.B contents
+This will be populated with all valid contents found.
+
+.TP
+.B objects_delimits
+An array of delimits for objects detected during processing. The caller is expected to decide if and when to process them.
+
+.TP
+.B contents_delimits
+(optional) An array of delimits for contents detected during processing. The caller is expected to decide if and when to process them. Set pointer address to 0 and all delimits will instead utilize objects_delimits.
+
+.TP
+.B comments
+An array of ranges representing where comments are found within any valid content. This only stores comments found within valid content only.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer.
+.br
+\fBF_none_stop\fP on success after reaching stopping point.
+.br
+\fBF_data_not_eos\fP no data to write due start location being greater than or equal to buffer size.
+.br
+\fBF_data_not_stop\fP no data to write due start location being greater than stop location.
+.br
+\fBF_number_overflow\fP (with error bit) if the maximum buffer size is reached.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_ranges_increase().
+.br
+Errors (with error bit) from: f_string_rangess_increase().
+.br
+Errors (with error bit) from: f_uint8s_increase().
+.br
+Errors (with error bit) from: fl_fss_basic_list_content_read().
+.br
+Errors (with error bit) from: fl_fss_basic_list_object_read().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_fss/data/documentation/man/man3/fll_fss_basic_list_write.3 b/level_2/fll_fss/data/documentation/man/man3/fll_fss_basic_list_write.3
new file mode 100644 (file)
index 0000000..bbcd793
--- /dev/null
@@ -0,0 +1,63 @@
+.TH fll_fss_basic_list_write "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_fss_basic_list_write
+.SH SYNOPSIS
+.nf
+.B #include <basic_list.h>
+.sp
+\fBf_status_t fll_fss_basic_list_write\fP(
+    \fBconst f_string_static_t   \fP\fIobject\fP,
+    \fBconst f_string_static_t   \fP\fIcontent\fP,
+    \fBconst f_string_static_t  *\fP\fIcontent_prepend\fP,
+    \fBf_state_t                 \fP\fIstate\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write a single object string and content string to a buffer, using fss-0002 format.
+.SH PARAMETERS
+.TP
+.B object
+A string representing the object.
+
+.TP
+.B content
+A string representing the content.
+
+.TP
+.B content_prepend
+A string to prepend at the start of each line in content, such as spaces. Set the pointer address to 0 to disable.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B destination
+The buffer to write to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer.
+.br
+\fBF_none_stop\fP on success after reaching stopping point.
+.br
+\fBF_data_not_eos\fP no data to write due start location being greater than or equal to buffer size.
+.br
+\fBF_data_not_stop\fP no data to write due start location being greater than stop location
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_increase().
+.br
+Errors (with error bit) from: fl_fss_basic_list_content_write().
+.br
+Errors (with error bit) from: fl_fss_basic_list_object_write().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_fss/data/documentation/man/man3/fll_fss_basic_read.3 b/level_2/fll_fss/data/documentation/man/man3/fll_fss_basic_read.3
new file mode 100644 (file)
index 0000000..d7999ca
--- /dev/null
@@ -0,0 +1,86 @@
+.TH fll_fss_basic_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_fss_basic_read
+.SH SYNOPSIS
+.nf
+.B #include <basic.h>
+.sp
+\fBf_status_t fll_fss_basic_read\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_state_t               \fP\fIstate\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP,
+    \fBf_fss_objects_t *const  \fP\fIobjects\fP,
+    \fBf_fss_contents_t *const \fP\fIcontents\fP,
+    \fBf_fss_quotes_t *const   \fP\fIobjects_quoted\fP,
+    \fBf_fss_delimits_t *const \fP\fIobjects_delimits\fP,
+    \fBf_fss_delimits_t *const \fP\fIcontents_delimits\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is the fss-0000 implementation. Read a buffer expected to be in fss-0000 format, getting all objects and their respective content.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The range within the buffer that is currently being read.
+
+.TP
+.B objects
+This will be populated with all valid objects found.
+
+.TP
+.B contents
+This will be populated with all valid contents found.
+
+.TP
+.B objects_quoted
+(optional) An array mapped to each object in objects representing the quote type discovered (from the f_fss_quote_type_*_e), if any. Set the pointer address to 0 to disable.
+
+.TP
+.B objects_delimits
+An array of delimits for objects detected during processing. The caller is expected to decide if and when to process them.
+
+.TP
+.B contents_delimits
+(optional) An array of delimits for contents detected during processing. The caller is expected to decide if and when to process them. Set pointer address to 0 and all delimits will instead utilize objects_delimits.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer.
+.br
+\fBF_none_stop\fP on success after reaching stopping point.
+.br
+\fBF_data_not_eol\fP if there is no data to write and EOL was reached.
+.br
+\fBF_data_not_eos\fP no data to write due start location being greater than or equal to buffer size.
+.br
+\fBF_data_not_stop\fP no data to write due start location being greater than stop location.
+.br
+\fBF_number_overflow\fP (with error bit) if the maximum buffer size is reached.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_ranges_increase().
+.br
+Errors (with error bit) from: f_string_rangess_increase().
+.br
+Errors (with error bit) from: f_uint8s_increase().
+.br
+Errors (with error bit) from: fl_fss_basic_content_read().
+.br
+Errors (with error bit) from: fl_fss_basic_object_read().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_fss/data/documentation/man/man3/fll_fss_basic_write.3 b/level_2/fll_fss/data/documentation/man/man3/fll_fss_basic_write.3
new file mode 100644 (file)
index 0000000..4cc70cd
--- /dev/null
@@ -0,0 +1,63 @@
+.TH fll_fss_basic_write "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_fss_basic_write
+.SH SYNOPSIS
+.nf
+.B #include <basic.h>
+.sp
+\fBf_status_t fll_fss_basic_write\fP(
+    \fBconst f_string_static_t   \fP\fIobject\fP,
+    \fBconst f_string_static_t   \fP\fIcontent\fP,
+    \fBconst f_fss_quote_t       \fP\fIquote\fP,
+    \fBf_state_t                 \fP\fIstate\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write a single object string and content string to a buffer, using fss-0000 format.
+.SH PARAMETERS
+.TP
+.B object
+A string representing the object.
+
+.TP
+.B content
+A string representing the content.
+
+.TP
+.B quote
+If 0, then double quotes are auto-inserted, when required. Otherwise, this is the type of quote to wrap the object in when writing.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B destination
+The buffer where the content is written to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer.
+.br
+\fBF_none_stop\fP on success after reaching stopping point.
+.br
+\fBF_data_not_eos\fP no data to write due start location being greater than or equal to buffer size.
+.br
+\fBF_data_not_stop\fP no data to write due start location being greater than stop location.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_increase().
+.br
+Errors (with error bit) from: fl_fss_basic_content_write().
+.br
+Errors (with error bit) from: fl_fss_basic_object_write().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_fss/data/documentation/man/man3/fll_fss_embedded_list_read.3 b/level_2/fll_fss/data/documentation/man/man3/fll_fss_embedded_list_read.3
new file mode 100644 (file)
index 0000000..88becb4
--- /dev/null
@@ -0,0 +1,83 @@
+.TH fll_fss_embedded_list_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_fss_embedded_list_read
+.SH SYNOPSIS
+.nf
+.B #include <embedded_list.h>
+.sp
+\fBf_status_t fll_fss_embedded_list_read\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_state_t               \fP\fIstate\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP,
+    \fBf_fss_nest_t *const     \fP\fInest\fP,
+    \fBf_fss_delimits_t *const \fP\fIobjects_delimits\fP,
+    \fBf_fss_delimits_t *const \fP\fIcontents_delimits\fP,
+    \fBf_fss_comments_t *const \fP\fIcomments\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is the fss-0008 implementation. Read a buffer expected to be in fss-0008 format, getting all objects and their respective content.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The range within the buffer that is currently being read.
+
+.TP
+.B nest
+An nested set of all objects and content.
+
+.TP
+.B objects_delimits
+An array of delimits for objects detected during processing. The caller is expected to decide if and when to process them.
+
+.TP
+.B contents_delimits
+(optional) An array of delimits for contents detected during processing. The caller is expected to decide if and when to process them. Set pointer address to 0 and all delimits will instead utilize objects_delimits.
+
+.TP
+.B comments
+An array of ranges representing where comments are found within any valid content. This only stores comments found within valid content only.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success (both valid object and valid content found with start location is at end of content).
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer (both valid object and valid content found with start location is at end of buffer).
+.br
+\fBF_none_stop\fP on success after reaching stopping point (both valid object and valid content found with start location is at stop point).
+.br
+\fBF_data_not_eol\fP if there is no data to write and EOL was reached.
+.br
+\fBF_data_not_eos\fP no data to write due start location being greater than or equal to buffer size.
+.br
+\fBF_data_not_stop\fP no data to write due start location being greater than stop location.
+.br
+\fBF_fss_found_object_content_not\fP on success and object was found but no content was found (start location is at end of object).
+.br
+\fBF_number_overflow\fP (with error bit) if the maximum buffer size is reached.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_ranges_increase().
+.br
+Errors (with error bit) from: f_string_rangess_increase().
+.br
+Errors (with error bit) from: f_uint8s_increase().
+.br
+Errors (with error bit) from: fl_fss_embedded_list_content_read().
+.br
+Errors (with error bit) from: fl_fss_embedded_list_object_read().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_fss/data/documentation/man/man3/fll_fss_embedded_list_write.3 b/level_2/fll_fss/data/documentation/man/man3/fll_fss_embedded_list_write.3
new file mode 100644 (file)
index 0000000..6e21bd5
--- /dev/null
@@ -0,0 +1,68 @@
+.TH fll_fss_embedded_list_write "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_fss_embedded_list_write
+.SH SYNOPSIS
+.nf
+.B #include <embedded_list.h>
+.sp
+\fBf_status_t fll_fss_embedded_list_write\fP(
+    \fBconst f_string_static_t   \fP\fIobject\fP,
+    \fBconst f_string_static_t   \fP\fIcontent\fP,
+    \fBconst f_string_static_t  *\fP\fIcontent_prepend\fP,
+    \fBconst f_string_ranges_t  *\fP\fIignore\fP,
+    \fBf_state_t                 \fP\fIstate\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write a single object string and content string to a buffer, using fss-0008 format.
+.SH PARAMETERS
+.TP
+.B object
+A string representing the object.
+
+.TP
+.B content
+A string representing the content.
+
+.TP
+.B content_prepend
+A string to prepend at the start of each line in content, such as spaces. Set the pointer address to 0 to disable.
+
+.TP
+.B ignore
+An optional list of ranges within the string to ignore. These ranges are only checked/ignored if there is a valid nested object open or a valid nested object close. Any valid nested object open or valid nested object close inside an ingore range will not be escaped. Set the pointer address to 0 to disable.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B destination
+The buffer where the content is written to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer.
+.br
+\fBF_none_stop\fP on success after reaching stopping point.
+.br
+\fBF_data_not_eos\fP no data to write due start location being greater than or equal to buffer size.
+.br
+\fBF_data_not_stop\fP no data to write due start location being greater than stop location.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_increase().
+.br
+Errors (with error bit) from: fl_fss_embedded_list_content_write().
+.br
+Errors (with error bit) from: fl_fss_embedded_list_object_write().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_fss/data/documentation/man/man3/fll_fss_extended_list_read.3 b/level_2/fll_fss/data/documentation/man/man3/fll_fss_extended_list_read.3
new file mode 100644 (file)
index 0000000..b22ba15
--- /dev/null
@@ -0,0 +1,90 @@
+.TH fll_fss_extended_list_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_fss_extended_list_read
+.SH SYNOPSIS
+.nf
+.B #include <extended_list.h>
+.sp
+\fBf_status_t fll_fss_extended_list_read\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_state_t               \fP\fIstate\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP,
+    \fBf_fss_objects_t *const  \fP\fIobjects\fP,
+    \fBf_fss_contents_t *const \fP\fIcontents\fP,
+    \fBf_fss_delimits_t *const \fP\fIobjects_delimits\fP,
+    \fBf_fss_delimits_t *const \fP\fIcontents_delimits\fP,
+    \fBf_fss_comments_t *const \fP\fIcomments\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is the fss-0003 implementation. Read a buffer expected to be in fss-0003 format, getting all objects and their respective content.
+.PP
+This does not utilize recursion and has a max content depth of 1, see fss-0008 (Embedded List) for that purpose.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The range within the buffer that is currently being read.
+
+.TP
+.B objects
+This will be populated with all valid objects found.
+
+.TP
+.B contents
+This will be populated with all valid contents found.
+
+.TP
+.B objects_delimits
+An array of delimits for objects detected during processing. The caller is expected to decide if and when to process them.
+
+.TP
+.B contents_delimits
+(optional) An array of delimits for contents detected during processing. The caller is expected to decide if and when to process them. Set pointer address to 0 and all delimits will instead utilize objects_delimits.
+
+.TP
+.B comments
+An array of ranges representing where comments are found within any valid content. This only stores comments found within valid content only.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success (both valid object and valid content found with start location is at end of content).
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer (both valid object and valid content found with start location is at end of buffer).
+.br
+\fBF_none_stop\fP on success after reaching stopping point (both valid object and valid content found with start location is at stop point).
+.br
+\fBF_data_not_eol\fP if there is no data to write and EOL was reached.
+.br
+\fBF_data_not_eos\fP no data to write due start location being greater than or equal to buffer size.
+.br
+\fBF_data_not_stop\fP no data to write due start location being greater than stop location.
+.br
+\fBF_fss_found_object_content_not\fP on success and object was found but no content was found (start location is at end of object).
+.br
+\fBF_number_overflow\fP (with error bit) if the maximum buffer size is reached.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_ranges_increase().
+.br
+Errors (with error bit) from: f_string_rangess_increase().
+.br
+Errors (with error bit) from: f_uint8s_increase().
+.br
+Errors (with error bit) from: fl_fss_extended_list_content_read().
+.br
+Errors (with error bit) from: fl_fss_extended_list_object_read().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_fss/data/documentation/man/man3/fll_fss_extended_list_write.3 b/level_2/fll_fss/data/documentation/man/man3/fll_fss_extended_list_write.3
new file mode 100644 (file)
index 0000000..4dc4aa8
--- /dev/null
@@ -0,0 +1,68 @@
+.TH fll_fss_extended_list_write "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_fss_extended_list_write
+.SH SYNOPSIS
+.nf
+.B #include <extended_list.h>
+.sp
+\fBf_status_t fll_fss_extended_list_write\fP(
+    \fBconst f_string_static_t   \fP\fIobject\fP,
+    \fBconst f_string_static_t   \fP\fIcontent\fP,
+    \fBconst f_string_static_t  *\fP\fIcontent_prepend\fP,
+    \fBconst f_string_ranges_t  *\fP\fIignore\fP,
+    \fBf_state_t                 \fP\fIstate\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write a single object string and content string to a buffer, using fss-0003 format.
+.SH PARAMETERS
+.TP
+.B object
+A string representing the object.
+
+.TP
+.B content
+A string representing the content.
+
+.TP
+.B content_prepend
+A string to prepend at the start of each line in content, such as spaces. Set the pointer address to 0 to disable.
+
+.TP
+.B ignore
+An optional list of ranges within the string to ignore. These ranges are only checked/ignored if there is a valid nested object open or a valid nested object close. Any valid nested object open or valid nested object close inside an ingore range will not be escaped. Set the pointer address to 0 to disable.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B destination
+The buffer where the content is written to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer.
+.br
+\fBF_none_stop\fP on success after reaching stopping point.
+.br
+\fBF_data_not_eos\fP no data to write due start location being greater than or equal to buffer size.
+.br
+\fBF_data_not_stop\fP no data to write due start location being greater than stop location.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_increase().
+.br
+Errors (with error bit) from: fl_fss_extended_list_content_write().
+.br
+Errors (with error bit) from: fl_fss_extended_list_object_write().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_fss/data/documentation/man/man3/fll_fss_extended_read.3 b/level_2/fll_fss/data/documentation/man/man3/fll_fss_extended_read.3
new file mode 100644 (file)
index 0000000..54beb4e
--- /dev/null
@@ -0,0 +1,91 @@
+.TH fll_fss_extended_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_fss_extended_read
+.SH SYNOPSIS
+.nf
+.B #include <extended.h>
+.sp
+\fBf_status_t fll_fss_extended_read\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_state_t               \fP\fIstate\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP,
+    \fBf_fss_objects_t *const  \fP\fIobjects\fP,
+    \fBf_fss_contents_t *const \fP\fIcontents\fP,
+    \fBf_fss_quotes_t *const   \fP\fIobjects_quoted\fP,
+    \fBf_fss_quotess_t *const  \fP\fIcontents_quoted\fP,
+    \fBf_fss_delimits_t *const \fP\fIobjects_delimits\fP,
+    \fBf_fss_delimits_t *const \fP\fIcontents_delimits\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is the fss-0001 implementation. Read a buffer expected to be in fss-0001 format, getting all objects and their respective content.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The range within the buffer that is currently being read.
+
+.TP
+.B objects
+This will be populated with all valid objects found.
+
+.TP
+.B contents
+This will be populated with all valid contents found.
+
+.TP
+.B objects_quoted
+(optional) An array mapped to each object in objects representing the quote type discovered (from the f_fss_quote_type_*_e), if any. Set the pointer address to 0 to disable.
+
+.TP
+.B contents_quoted
+(optional) An array mapped to each content in objects representing the quote type discovered (from the f_fss_quote_type_*_e), if any. Set the pointer address to 0 to disable.
+
+.TP
+.B objects_delimits
+An array of delimits for objects detected during processing. The caller is expected to decide if and when to process them.
+
+.TP
+.B contents_delimits
+(optional) An array of delimits for contents detected during processing. The caller is expected to decide if and when to process them. Set pointer address to 0 and all delimits will instead utilize objects_delimits.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_stop\fP on success after reaching stopping point.
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer.
+.br
+\fBF_data_not_stop\fP no data to write due start location being greater than stop location.
+.br
+\fBF_data_not_eos\fP no data to write due start location being greater than or equal to buffer size.
+.br
+\fBF_data_not_eol\fP if there is no data to write and EOL was reached.
+.br
+\fBF_number_overflow\fP (with error bit) if the maximum buffer size is reached.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_ranges_increase().
+.br
+Errors (with error bit) from: f_string_rangess_increase().
+.br
+Errors (with error bit) from: f_uint8s_increase().
+.br
+Errors (with error bit) from: fl_fss_extended_content_read().
+.br
+Errors (with error bit) from: fl_fss_extended_object_read().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_fss/data/documentation/man/man3/fll_fss_extended_write.3 b/level_2/fll_fss/data/documentation/man/man3/fll_fss_extended_write.3
new file mode 100644 (file)
index 0000000..000d553
--- /dev/null
@@ -0,0 +1,63 @@
+.TH fll_fss_extended_write "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_fss_extended_write
+.SH SYNOPSIS
+.nf
+.B #include <extended.h>
+.sp
+\fBf_status_t fll_fss_extended_write\fP(
+    \fBconst f_string_static_t   \fP\fIobject\fP,
+    \fBconst f_string_statics_t  \fP\fIcontents\fP,
+    \fBconst f_fss_quote_t       \fP\fIquote\fP,
+    \fBf_state_t                 \fP\fIstate\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write a single object string and content string to a buffer, using fss-0001 format.
+.SH PARAMETERS
+.TP
+.B object
+A string representing the object.
+
+.TP
+.B contents
+An array of strings representing multiple content to write.
+
+.TP
+.B quote
+If 0, then double quotes are auto-inserted, when required. Otherwise, this is the type of quote to wrap the object in when writing.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B destination
+The buffer where the content is written to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer.
+.br
+\fBF_none_stop\fP on success after reaching stopping point.
+.br
+\fBF_data_not_eos\fP no data to write due start location being greater than or equal to buffer size.
+.br
+\fBF_data_not_stop\fP no data to write due start location being greater than stop location.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_increase().
+.br
+Errors (with error bit) from: fl_fss_extended_content_write().
+.br
+Errors (with error bit) from: fl_fss_extended_object_write().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_fss/data/documentation/man/man3/fll_fss_identify.3 b/level_2/fll_fss/data/documentation/man/man3/fll_fss_identify.3
new file mode 100644 (file)
index 0000000..29ec375
--- /dev/null
@@ -0,0 +1,59 @@
+.TH fll_fss_identify "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_fss_identify
+.SH SYNOPSIS
+.nf
+.B #include <fss.h>
+.sp
+\fBf_status_t fll_fss_identify\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP,
+    \fBf_fll_ids_t *const      \fP\fIids\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provide common FSS functions. Identify FSS type from a buffered string.
+.PP
+The operates on the assumption that the first character provided is the start of the line. This will process until the stop point or the end of the line. This stop point should always be after the end of the line, except when there is an error.
+.PP
+This expects there to be at least a single "fss-XXXX" FSS Identifier. If one is not found but the line contains valid FLL Identifiers, then this returns F_maybe.
+.PP
+See the fl_string_dynamic_partial_fll_identify() function for details on individual FLL/FSS Identifier processing.
+.PP
+When non-NULL, this will have its length reset to 0. FLL/FSS Identifiers will then be appended to this array.
+.SH PARAMETERS
+.TP
+.B buffer
+The string to process.
+
+.TP
+.B range
+A range within the buffer representing the start and stop locations. The caller must ensure that the stop point does not exceed the buffer size.
+
+.TP
+.B ids
+(optional) The FLL Identifiers to populate with results of this function. Set to NULL to not use.
+
+.SH RETURN VALUE
+.PP
+\fBF_data_not\fP if length is 0.
+.br
+\fBF_found\fP if the buffer does represent a valid FSS Identifier.
+.br
+\fBF_found_not\fP if the buffer does not represent a valid FSS Identifier.
+.br
+\fBF_maybe\fP if the buffer is a valid FLL Identifier but does not have an FSS Identifier ("fss-XXXX").
+.br
+\fBF_complete_not_utf\fP (with error bit) if character is an incomplete UTF-8 fragment.
+.br
+Errors (with error bit) from: f_fll_ids_increase().
+.br
+Errors (with error bit) from: f_utf_is_whitespace().
+.br
+Errors (with error bit) from: fl_string_dynamic_partial_fll_identify().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_fss/data/documentation/man/man3/fll_fss_payload_read.3 b/level_2/fll_fss/data/documentation/man/man3/fll_fss_payload_read.3
new file mode 100644 (file)
index 0000000..b045f6f
--- /dev/null
@@ -0,0 +1,104 @@
+.TH fll_fss_payload_read "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_fss_payload_read
+.SH SYNOPSIS
+.nf
+.B #include <payload.h>
+.sp
+\fBf_status_t fll_fss_payload_read\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBf_state_t               \fP\fIstate\fP,
+    \fBf_string_range_t *const \fP\fIrange\fP,
+    \fBf_fss_objects_t *const  \fP\fIobjects\fP,
+    \fBf_fss_contents_t *const \fP\fIcontents\fP,
+    \fBf_fss_delimits_t *const \fP\fIobjects_delimits\fP,
+    \fBf_fss_delimits_t *const \fP\fIcontents_delimits\fP,
+    \fBf_fss_comments_t *const \fP\fIcomments\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is the fss-000e implementation. Read a buffer expected to be in fss-000e format, getting all objects and their respective content.
+.PP
+This processes only the outermost part and specially handles the payload. The inner data, such as the fss-0001 inside of the "header", should be directly processed via the appropriate function.
+.PP
+The "payload" Object is required and if it is not file, this function returns with the error flag set.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B range
+The range within the buffer that is currently being read.
+
+.TP
+.B objects
+This will be populated with all valid objects found.
+
+.TP
+.B contents
+This will be populated with all valid contents found.
+
+.TP
+.B objects_delimits
+An array of delimits for objects detected during processing. The caller is expected to decide if and when to process them.
+
+.TP
+.B contents_delimits
+(optional) An array of delimits for contents detected during processing. The caller is expected to decide if and when to process them. Set pointer address to 0 and all delimits will instead utilize objects_delimits.
+
+.TP
+.B comments
+An array of ranges representing where comments are found within any valid content. This only stores comments found within valid content only.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer.
+.br
+\fBF_none_stop\fP on success after reaching stopping point.
+.br
+\fBF_data_not_eos\fP no data to write due start location being greater than or equal to buffer size.
+.br
+\fBF_data_not_stop\fP no data to write due start location being greater than stop location.
+.br
+\fBF_fss_found_object_content_not\fP (with error bit) When payload Content is missing.
+.br
+\fBF_data_not_eos\fP (with error bit) no data to write due start location being greater than or equal to buffer size, except that no "payload" is found.
+.br
+\fBF_data_not_stop\fP (with error bit) no data to write due start location being greater than stop location, except that no "payload" is found.
+.br
+\fBF_none\fP (with error bit) on success, except that no "payload" is found.
+.br
+\fBF_none_eos\fP (with error bit) on success after reaching the end of the buffer, except that no "payload" is found.
+.br
+\fBF_none_stop\fP (with error bit) on success after reaching stopping point, except that no "payload" is found.
+.br
+\fBF_number_overflow\fP (with error bit) if the maximum buffer size is reached.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: fl_fss_basic_list_content_read().
+.br
+Errors (with error bit) from: fl_fss_basic_list_object_read().
+.br
+Errors (with error bit) from: f_string_ranges_increase().
+.br
+Errors (with error bit) from: f_string_rangess_increase().
+.br
+Errors (with error bit) from: f_uint8s_increase().
+.br
+Errors (with error bit) from: fl_fss_basic_list_content_read().
+.br
+Errors (with error bit) from: fl_fss_basic_list_object_read().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_fss/data/documentation/man/man3/fll_fss_payload_write.3 b/level_2/fll_fss/data/documentation/man/man3/fll_fss_payload_write.3
new file mode 100644 (file)
index 0000000..d8b1cee
--- /dev/null
@@ -0,0 +1,72 @@
+.TH fll_fss_payload_write "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_fss_payload_write
+.SH SYNOPSIS
+.nf
+.B #include <payload.h>
+.sp
+\fBf_status_t fll_fss_payload_write\fP(
+    \fBconst f_string_static_t   \fP\fIobject\fP,
+    \fBconst f_string_static_t   \fP\fIcontent\fP,
+    \fBconst bool                \fP\fItrim\fP,
+    \fBconst f_string_static_t  *\fP\fIcontent_prepend\fP,
+    \fBf_state_t                 \fP\fIstate\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Write a single object string and content string to a buffer, using fss-0002 format.
+.PP
+This processes only the outermost part and specially handles the payload. The inner data, such as the fss-0001 inside of the "header", should be directly processed via the appropriate function.
+.PP
+If the Object is "payload", then the Content is written directly without prcessing or escaping.
+.SH PARAMETERS
+.TP
+.B object
+A string representing the object.
+
+.TP
+.B content
+A string representing the content.
+
+.TP
+.B trim
+If TRUE, the Object is passed f_fss_complete_full_trim_e. If FALSE, the Object is passed f_fss_complete_full_e. The Content is always passed f_fss_complete_full_e.
+
+.TP
+.B content_prepend
+A string to prepend at the start of each line in content, such as spaces. This will not be prepended for the Object "payload". Set the pointer address to 0 to disable.
+
+.TP
+.B state
+A state for providing flags and handling interrupts during long running operations. There is no state.handle(). There is no "callbacks" structure. There is no data structure passed to these functions.
+
+.TP
+.B destination
+The buffer to append to.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_none_eos\fP on success after reaching the end of the buffer.
+.br
+\fBF_none_stop\fP on success after reaching stopping point.
+.br
+\fBF_data_not_eos\fP no data to write due start location being greater than or equal to buffer size.
+.br
+\fBF_data_not_stop\fP no data to write due start location being greater than stop location.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_increase().
+.br
+Errors (with error bit) from: fl_fss_basic_list_content_write().
+.br
+Errors (with error bit) from: fl_fss_basic_list_object_write().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch.3 b/level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch.3
new file mode 100644 (file)
index 0000000..2214d9e
--- /dev/null
@@ -0,0 +1,76 @@
+.TH fll_fss_snatch "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_fss_snatch
+.SH SYNOPSIS
+.nf
+.B #include <fss.h>
+.sp
+\fBf_status_t fll_fss_snatch\fP(
+    \fBconst f_string_static_t   \fP\fIbuffer\fP,
+    \fBconst f_fss_objects_t     \fP\fIobjects\fP,
+    \fBconst f_fss_contents_t    \fP\fIcontents\fP,
+    \fBconst f_string_static_t   \fP\fInames\fP,
+    \fBconst f_array_length_t    \fP\fIsize\fP,
+    \fBf_string_dynamic_t *const \fP\fIvalues\fP,
+    \fBbool                      \fP\fImatches\fP,
+    \fBf_array_length_t *const   \fP\fIindexs\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Perform simple search through all objects against the given set, saving all values when matched.
+.PP
+Only the first match for each distinct object is snatched. Only the first content for each object is snatched.
+.PP
+This will trim the object names when comparing (removing leading/trailing whitespace). This will strip NULL characters when copying.
+.PP
+This performs only a simple search algorithm that should be acceptable for small sets where performance is generally not a concern.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B objects
+This object mappings to process.
+
+.TP
+.B contents
+This content mappings to process.
+
+.TP
+.B names
+An array of strings to "snatch" from the buffer.
+
+.TP
+.B size
+The total size of the names and values arrays.
+
+.TP
+.B values
+An array of values where "snatched" content is stored.
+
+.TP
+.B matches
+An array representing the if an Object was matched. Set the pointer address to 0 to disable.
+
+.TP
+.B indexs
+An array representing the index within the Objects where the Content match was made. Set the pointer address to 0 to disable.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP when there is no buffer, objects or contents to process.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_partial_append_nulless().
+.br
+Errors (with error bit) from: fl_string_dynamic_partial_compare_trim_string().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_apart.3 b/level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_apart.3
new file mode 100644 (file)
index 0000000..e47af6e
--- /dev/null
@@ -0,0 +1,78 @@
+.TH fll_fss_snatch_apart "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_fss_snatch_apart
+.SH SYNOPSIS
+.nf
+.B #include <fss.h>
+.sp
+\fBf_status_t fll_fss_snatch_apart\fP(
+    \fBconst f_string_static_t    \fP\fIbuffer\fP,
+    \fBconst f_fss_objects_t      \fP\fIobjects\fP,
+    \fBconst f_fss_contents_t     \fP\fIcontents\fP,
+    \fBconst f_string_static_t    \fP\fInames\fP,
+    \fBconst f_array_length_t     \fP\fIsize\fP,
+    \fBf_string_dynamics_t *const \fP\fIvalues\fP,
+    \fBbool                       \fP\fImatches\fP,
+    \fBf_array_lengths_t *const   \fP\fIindexs\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Perform simple search through all objects against the given set, saving all values when matched.
+.PP
+All matches for each object is snatched. All content for each object is snatched.
+.PP
+Multiple contents for a single object are stored in separate strings.
+.PP
+This will trim the object names when comparing (removing leading/trailing whitespace). This will strip NULL characters when copying.
+.PP
+This performs only a simple search algorithm that should be acceptable for small sets where performance is generally not a concern.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B objects
+This object mappings to process.
+
+.TP
+.B contents
+This content mappings to process.
+
+.TP
+.B names
+An array of strings to "snatch" from the buffer.
+
+.TP
+.B size
+The total size of the names and values arrays.
+
+.TP
+.B values
+An array of values where "snatched" content is stored.
+
+.TP
+.B matches
+An array representing the if an Object was matched. Set the pointer address to 0 to disable.
+
+.TP
+.B indexs
+An array representing the index within the Objects where the Content match was made. Set the pointer address to 0 to disable.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP when there is no buffer, objects or contents to process.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_partial_append_nulless().
+.br
+Errors (with error bit) from: fl_string_dynamic_partial_compare_trim_string().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_map.3 b/level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_map.3
new file mode 100644 (file)
index 0000000..c2df759
--- /dev/null
@@ -0,0 +1,80 @@
+.TH fll_fss_snatch_map "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_fss_snatch_map
+.SH SYNOPSIS
+.nf
+.B #include <fss.h>
+.sp
+\fBf_status_t fll_fss_snatch_map\fP(
+    \fBconst f_string_static_t  \fP\fIbuffer\fP,
+    \fBconst f_fss_objects_t    \fP\fIobjects\fP,
+    \fBconst f_fss_contents_t   \fP\fIcontents\fP,
+    \fBconst f_string_static_t  \fP\fInames\fP,
+    \fBconst f_array_length_t   \fP\fIsize\fP,
+    \fBf_string_maps_t *const   \fP\fIvalues\fP,
+    \fBbool                     \fP\fImatches\fP,
+    \fBf_array_lengths_t *const \fP\fIindexs\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Perform simple search through all objects against the given set, saving all values to a map when matched.
+.PP
+Only the first match for each distinct object and map name is snatched (map names are therefore distinct). Only the first content map value for each object and map name is snatched.
+.PP
+The first content is considered the map name, all other content are considered a map value.
+.PP
+This will ignore any object that has no map name.
+.PP
+This will trim the object names when comparing (removing leading/trailing whitespace). This will strip NULL characters when copying.
+.PP
+This performs only a simple search algorithm that should be acceptable for small sets where performance is generally not a concern.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B objects
+This object mappings to process.
+
+.TP
+.B contents
+This content mappings to process.
+
+.TP
+.B names
+An array of strings to "snatch" from the buffer.
+
+.TP
+.B size
+The total size of the names and values arrays.
+
+.TP
+.B values
+An array of map arrays where "snatched" content is stored.
+
+.TP
+.B matches
+An array representing the if an Object was matched. Set the pointer address to 0 to disable.
+
+.TP
+.B indexs
+An array representing the index within the Objects where the Content match was made. Set the pointer address to 0 to disable.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP when there is no buffer, objects or contents to process.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_partial_append_nulless().
+.br
+Errors (with error bit) from: fl_string_dynamic_partial_compare_trim_string().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_map_apart.3 b/level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_map_apart.3
new file mode 100644 (file)
index 0000000..4692188
--- /dev/null
@@ -0,0 +1,80 @@
+.TH fll_fss_snatch_map_apart "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_fss_snatch_map_apart
+.SH SYNOPSIS
+.nf
+.B #include <fss.h>
+.sp
+\fBf_status_t fll_fss_snatch_map_apart\fP(
+    \fBconst f_string_static_t      \fP\fIbuffer\fP,
+    \fBconst f_fss_objects_t        \fP\fIobjects\fP,
+    \fBconst f_fss_contents_t       \fP\fIcontents\fP,
+    \fBconst f_string_static_t      \fP\fInames\fP,
+    \fBconst f_array_length_t       \fP\fIsize\fP,
+    \fBf_string_map_multis_t *const \fP\fIvalues\fP,
+    \fBbool                         \fP\fImatches\fP,
+    \fBf_array_lengths_t *const     \fP\fIindexs\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Perform simple search through all objects against the given set, saving all values to a multi map when matched.
+.PP
+All matches for each object and map name is snatched. All content map values for each object and map name is snatched.
+.PP
+The first content value is considered the map name, all other content values are considered a map value. Multiple contents, after the first, for a single object are stored in separate map value strings. Content for multiple identical objects and map names are added in separate maps from other objects (map names are therefore non-distinct).
+.PP
+This will ignore any object that has no map name.
+.PP
+This will trim the object names when comparing (removing leading/trailing whitespace). This will strip NULL characters when copying.
+.PP
+This performs only a simple search algorithm that should be acceptable for small sets where performance is generally not a concern.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B objects
+This object mappings to process.
+
+.TP
+.B contents
+This content mappings to process.
+
+.TP
+.B names
+An array of strings to "snatch" from the buffer.
+
+.TP
+.B size
+The total size of the names and values arrays.
+
+.TP
+.B values
+An array of multi map arrays where "snatched" content is stored.
+
+.TP
+.B matches
+An array representing the if an Object was matched. Set the pointer address to 0 to disable.
+
+.TP
+.B indexs
+An array representing the index within the Objects where the Content match was made. Set the pointer address to 0 to disable.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP when there is no buffer, objects or contents to process.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_partial_append_nulless().
+.br
+Errors (with error bit) from: fl_string_dynamic_partial_compare_trim_string().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_map_mash.3 b/level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_map_mash.3
new file mode 100644 (file)
index 0000000..4b56aba
--- /dev/null
@@ -0,0 +1,85 @@
+.TH fll_fss_snatch_map_mash "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_fss_snatch_map_mash
+.SH SYNOPSIS
+.nf
+.B #include <fss.h>
+.sp
+\fBf_status_t fll_fss_snatch_map_mash\fP(
+    \fBconst f_string_static_t  \fP\fIbuffer\fP,
+    \fBconst f_fss_objects_t    \fP\fIobjects\fP,
+    \fBconst f_fss_contents_t   \fP\fIcontents\fP,
+    \fBconst f_string_static_t  \fP\fInames\fP,
+    \fBconst f_array_length_t   \fP\fIsize\fP,
+    \fBconst f_string_static_t  \fP\fIglue\fP,
+    \fBf_string_maps_t *const   \fP\fIvalues\fP,
+    \fBbool                     \fP\fImatches\fP,
+    \fBf_array_lengths_t *const \fP\fIindexs\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Perform simple search through all objects against the given set, saving all values to a map when matched.
+.PP
+Only the first match for each distinct object and map name is snatched (map names are therefore distinct). All content values for each object and map name is snatched.
+.PP
+The first content value is considered the map name, all other content values are considered a map value. Multiple contents, after the first, for a single object are appended to a single map value string using the provided glue.
+.PP
+This will ignore any object that has no map name.
+.PP
+This will trim the object names when comparing (removing leading/trailing whitespace). This will strip NULL characters when copying.
+.PP
+This performs only a simple search algorithm that should be acceptable for small sets where performance is generally not a concern.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B objects
+This object mappings to process.
+
+.TP
+.B contents
+This content mappings to process.
+
+.TP
+.B names
+An array of strings to "snatch" from the buffer.
+
+.TP
+.B size
+The total size of the names and values arrays.
+
+.TP
+.B glue
+A string to append between each duplicate name found when "snatching".
+
+.TP
+.B values
+An array of multi map value arrays where "snatched" content is stored.
+
+.TP
+.B matches
+An array representing the if an Object was matched. Set the pointer address to 0 to disable.
+
+.TP
+.B indexs
+An array representing the index within the Objects where the Content match was made. Set the pointer address to 0 to disable.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP when there is no buffer, objects or contents to process.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_partial_mash_nulless().
+.br
+Errors (with error bit) from: fl_string_dynamic_partial_compare_trim_string().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_map_mash_apart.3 b/level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_map_mash_apart.3
new file mode 100644 (file)
index 0000000..6953f2c
--- /dev/null
@@ -0,0 +1,85 @@
+.TH fll_fss_snatch_map_mash_apart "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_fss_snatch_map_mash_apart
+.SH SYNOPSIS
+.nf
+.B #include <fss.h>
+.sp
+\fBf_status_t fll_fss_snatch_map_mash_apart\fP(
+    \fBconst f_string_static_t      \fP\fIbuffer\fP,
+    \fBconst f_fss_objects_t        \fP\fIobjects\fP,
+    \fBconst f_fss_contents_t       \fP\fIcontents\fP,
+    \fBconst f_string_static_t      \fP\fInames\fP,
+    \fBconst f_array_length_t       \fP\fIsize\fP,
+    \fBconst f_string_static_t      \fP\fIglue\fP,
+    \fBf_string_map_multis_t *const \fP\fIvalues\fP,
+    \fBbool                         \fP\fImatches\fP,
+    \fBf_array_lengths_t *const     \fP\fIindexs\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Perform simple search through all objects against the given set, saving all values to a multi map when matched.
+.PP
+All matches for each object is snatched. All content for each object and map name is snatched.
+.PP
+The first content value is considered the map name, all other content values are considered a map value. Multiple contents, after the first, for a single object are appended to a single map value string using the provided glue. Content for multiple identical objects are added in separate maps from other objects (map names are therefore non-distinct).
+.PP
+This will ignore any object that has no map name.
+.PP
+This will trim the object names when comparing (removing leading/trailing whitespace). This will strip NULL characters when copying.
+.PP
+This performs only a simple search algorithm that should be acceptable for small sets where performance is generally not a concern.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B objects
+This object mappings to process.
+
+.TP
+.B contents
+This content mappings to process.
+
+.TP
+.B names
+An array of strings to "snatch" from the buffer.
+
+.TP
+.B size
+The total size of the names and values arrays.
+
+.TP
+.B glue
+A string to append between each duplicate name found when "snatching".
+
+.TP
+.B values
+An array of multi map value arrays where "snatched" content is stored.
+
+.TP
+.B matches
+An array representing the if an Object was matched. Set the pointer address to 0 to disable.
+
+.TP
+.B indexs
+An array representing the index within the Objects where the Content match was made. Set the pointer address to 0 to disable.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP when there is no buffer, objects or contents to process.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_partial_append_nulless().
+.br
+Errors (with error bit) from: fl_string_dynamic_partial_compare_trim_string().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_map_together.3 b/level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_map_together.3
new file mode 100644 (file)
index 0000000..c2a3b46
--- /dev/null
@@ -0,0 +1,85 @@
+.TH fll_fss_snatch_map_together "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_fss_snatch_map_together
+.SH SYNOPSIS
+.nf
+.B #include <fss.h>
+.sp
+\fBf_status_t fll_fss_snatch_map_together\fP(
+    \fBconst f_string_static_t  \fP\fIbuffer\fP,
+    \fBconst f_fss_objects_t    \fP\fIobjects\fP,
+    \fBconst f_fss_contents_t   \fP\fIcontents\fP,
+    \fBconst f_string_static_t  \fP\fInames\fP,
+    \fBconst f_array_length_t   \fP\fIsize\fP,
+    \fBconst f_string_static_t  \fP\fIglue\fP,
+    \fBf_string_maps_t *const   \fP\fIvalues\fP,
+    \fBbool                     \fP\fImatches\fP,
+    \fBf_array_lengths_t *const \fP\fIindexs\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Perform simple search through all objects against the given set, saving all values to a map when matched.
+.PP
+All matches for each distinct object and map name is snatched. All content map values for each distinct object and map name is snatched.
+.PP
+The first content is considered the map name, all other content are considered a map value. Multiple contents, after the first, for each distinct object and map names are appended to a single map value string using the provided glue (map names are therefore distinct).
+.PP
+This will ignore any object that has no map name.
+.PP
+This will trim the object names when comparing (removing leading/trailing whitespace). This will strip NULL characters when copying.
+.PP
+This performs only a simple search algorithm that should be acceptable for small sets where performance is generally not a concern.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B objects
+This object mappings to process.
+
+.TP
+.B contents
+This content mappings to process.
+
+.TP
+.B names
+An array of strings to "snatch" from the buffer.
+
+.TP
+.B size
+The total size of the names and values arrays.
+
+.TP
+.B glue
+A string to append between each duplicate name found when "snatching".
+
+.TP
+.B values
+An array of map arrays where "snatched" content is stored.
+
+.TP
+.B matches
+An array representing the if an Object was matched. Set the pointer address to 0 to disable.
+
+.TP
+.B indexs
+An array representing the index within the Objects where the Content match was made. Set the pointer address to 0 to disable.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP when there is no buffer, objects or contents to process.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_partial_append_nulless().
+.br
+Errors (with error bit) from: fl_string_dynamic_partial_compare_trim_string().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_mash.3 b/level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_mash.3
new file mode 100644 (file)
index 0000000..50a1f9a
--- /dev/null
@@ -0,0 +1,83 @@
+.TH fll_fss_snatch_mash "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_fss_snatch_mash
+.SH SYNOPSIS
+.nf
+.B #include <fss.h>
+.sp
+\fBf_status_t fll_fss_snatch_mash\fP(
+    \fBconst f_string_static_t   \fP\fIbuffer\fP,
+    \fBconst f_fss_objects_t     \fP\fIobjects\fP,
+    \fBconst f_fss_contents_t    \fP\fIcontents\fP,
+    \fBconst f_string_static_t   \fP\fInames\fP,
+    \fBconst f_array_length_t    \fP\fIsize\fP,
+    \fBconst f_string_static_t   \fP\fIglue\fP,
+    \fBf_string_dynamic_t *const \fP\fIvalues\fP,
+    \fBbool                      \fP\fImatches\fP,
+    \fBf_array_length_t *const   \fP\fIindexs\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Perform simple search through all objects against the given set, saving all values when matched.
+.PP
+Only the first match for each distinct object is snatched. All content for each object is snatched.
+.PP
+Multiple contents for a single object are appended using the provided glue.
+.PP
+This will trim the object names when comparing (removing leading/trailing whitespace). This will strip NULL characters when copying.
+.PP
+This performs only a simple search algorithm that should be acceptable for small sets where performance is generally not a concern.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B objects
+This object mappings to process.
+
+.TP
+.B contents
+This content mappings to process.
+
+.TP
+.B names
+An array of strings to "snatch" from the buffer.
+
+.TP
+.B size
+The total size of the names and values arrays.
+
+.TP
+.B glue
+A string to append between each duplicate name found when "snatching".
+
+.TP
+.B values
+An array of values where "snatched" content is stored.
+
+.TP
+.B matches
+An array representing the if an Object was matched. Set the pointer address to 0 to disable.
+
+.TP
+.B indexs
+An array representing the index within the Objects where the Content match was made. Set the pointer address to 0 to disable.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP when there is no buffer, objects or contents to process.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_partial_mash_nulless().
+.br
+Errors (with error bit) from: fl_string_dynamic_partial_compare_trim_string().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_mash_apart.3 b/level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_mash_apart.3
new file mode 100644 (file)
index 0000000..aba4824
--- /dev/null
@@ -0,0 +1,83 @@
+.TH fll_fss_snatch_mash_apart "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_fss_snatch_mash_apart
+.SH SYNOPSIS
+.nf
+.B #include <fss.h>
+.sp
+\fBf_status_t fll_fss_snatch_mash_apart\fP(
+    \fBconst f_string_static_t    \fP\fIbuffer\fP,
+    \fBconst f_fss_objects_t      \fP\fIobjects\fP,
+    \fBconst f_fss_contents_t     \fP\fIcontents\fP,
+    \fBconst f_string_static_t    \fP\fInames\fP,
+    \fBconst f_array_length_t     \fP\fIsize\fP,
+    \fBconst f_string_static_t    \fP\fIglue\fP,
+    \fBf_string_dynamics_t *const \fP\fIvalues\fP,
+    \fBbool                       \fP\fImatches\fP,
+    \fBf_array_lengths_t *const   \fP\fIindexs\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Perform simple search through all objects against the given set, saving all values when matched.
+.PP
+All matches for each object is snatched. All content for each object is snatched.
+.PP
+Multiple contents for a single object are appended using the provided glue. Content for multiple identical objects are added in separate strings from other objects.
+.PP
+This will trim the object names when comparing (removing leading/trailing whitespace). This will strip NULL characters when copying.
+.PP
+This performs only a simple search algorithm that should be acceptable for small sets where performance is generally not a concern.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B objects
+This object mappings to process.
+
+.TP
+.B contents
+This content mappings to process.
+
+.TP
+.B names
+An array of strings to "snatch" from the buffer.
+
+.TP
+.B size
+The total size of the names and values arrays.
+
+.TP
+.B glue
+A string to append between each duplicate name found when "snatching".
+
+.TP
+.B values
+An array of values where "snatched" content is stored.
+
+.TP
+.B matches
+An array representing the if an Object was matched. Set the pointer address to 0 to disable.
+
+.TP
+.B indexs
+An array representing the index within the Objects where the Content match was made. Set the pointer address to 0 to disable.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP when there is no buffer, objects or contents to process.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_partial_append_nulless().
+.br
+Errors (with error bit) from: fl_string_dynamic_partial_compare_trim_string().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_together.3 b/level_2/fll_fss/data/documentation/man/man3/fll_fss_snatch_together.3
new file mode 100644 (file)
index 0000000..db6639d
--- /dev/null
@@ -0,0 +1,81 @@
+.TH fll_fss_snatch_together "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_fss_snatch_together
+.SH SYNOPSIS
+.nf
+.B #include <fss.h>
+.sp
+\fBf_status_t fll_fss_snatch_together\fP(
+    \fBconst f_string_static_t   \fP\fIbuffer\fP,
+    \fBconst f_fss_objects_t     \fP\fIobjects\fP,
+    \fBconst f_fss_contents_t    \fP\fIcontents\fP,
+    \fBconst f_string_static_t   \fP\fInames\fP,
+    \fBconst f_array_length_t    \fP\fIsize\fP,
+    \fBconst f_string_static_t   \fP\fIglue\fP,
+    \fBf_string_dynamic_t *const \fP\fIvalues\fP,
+    \fBbool                      \fP\fImatches\fP,
+    \fBf_array_length_t *const   \fP\fIindexs\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Perform simple search through all objects against the given set, saving all values when matched.
+.PP
+All matches for each object is snatched. Multiple contents for all objects are appended using the provided glue.
+.PP
+This will trim the object names when comparing (removing leading/trailing whitespace). This will strip NULL characters when copying.
+.PP
+This performs only a simple search algorithm that should be acceptable for small sets where performance is generally not a concern.
+.SH PARAMETERS
+.TP
+.B buffer
+The buffer to read from.
+
+.TP
+.B objects
+This object mappings to process.
+
+.TP
+.B contents
+This content mappings to process.
+
+.TP
+.B names
+An array of strings to "snatch" from the buffer.
+
+.TP
+.B size
+The total size of the names and values arrays.
+
+.TP
+.B glue
+A string to append between each duplicate name found when "snatching".
+
+.TP
+.B values
+An array of values where "snatched" content is stored.
+
+.TP
+.B matches
+An array representing the if an Object was matched. Set the pointer address to 0 to disable.
+
+.TP
+.B indexs
+An array representing the index within the Objects where the Content match was made. Set the pointer address to 0 to disable.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP when there is no buffer, objects or contents to process.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_partial_mash_nulless().
+.br
+Errors (with error bit) from: fl_string_dynamic_partial_compare_trim_string().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_fss/data/documentation/man/man3/fll_fss_status_string_from.3 b/level_2/fll_fss/data/documentation/man/man3/fll_fss_status_string_from.3
new file mode 100644 (file)
index 0000000..afd92aa
--- /dev/null
@@ -0,0 +1,44 @@
+.TH fll_fss_status_string_from "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_fss_status_string_from
+.SH SYNOPSIS
+.nf
+.B #include <fss_status_string.h>
+.sp
+\fBf_status_t fll_fss_status_string_from\fP(
+    \fBconst f_string_static_t \fP\fIname\fP,
+    \fBf_status_t *const       \fP\fIcode\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert FSS status codes from their string equivalents to a status code.
+.PP
+Error, warning, and signal flags will not be assigned to the code.
+.PP
+This process the string until either a match or NULL is reached.
+.SH PARAMETERS
+.TP
+.B name
+The status name to process.
+
+.TP
+.B code
+The status number a matched string represents.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if string is empty.
+.br
+\fBF_data\fP (with error bit) if not found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_conversion_character_is_decimal().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_fss/data/documentation/man/man3/fll_fss_status_string_to.3 b/level_2/fll_fss/data/documentation/man/man3/fll_fss_status_string_to.3
new file mode 100644 (file)
index 0000000..9c75856
--- /dev/null
@@ -0,0 +1,36 @@
+.TH fll_fss_status_string_to "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_fss_status_string_to
+.SH SYNOPSIS
+.nf
+.B #include <fss_status_string.h>
+.sp
+\fBf_status_t fll_fss_status_string_to\fP(
+    \fBconst f_status_t         \fP\fIcode\fP,
+    \fBf_string_static_t *const \fP\fIname\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Convert code codes to their string equivalents.
+.SH PARAMETERS
+.TP
+.B code
+The status number to process.
+
+.TP
+.B name
+The status name that represents the given code.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_status_string_to().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index 5caa9a3bb94a8931717531e58f45bec842671a91..8942cb2253966160f5560087881dc7f91c379560 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library fss_status_string.c
 
 build_sources_headers fss_status_string.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index edcc7fc73e5177ac14b99b6bbf48804e440857aa..8306cf0c18d416fcea8b666668b6c06df8afbd06 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library iki.c private-iki.c
 
 build_sources_headers iki.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_2/fll_iki/data/documentation/man/man3/fll_iki_content_escape.3 b/level_2/fll_iki/data/documentation/man/man3/fll_iki_content_escape.3
new file mode 100644 (file)
index 0000000..78dc1f3
--- /dev/null
@@ -0,0 +1,47 @@
+.TH fll_iki_content_escape "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_iki_content_escape
+.SH SYNOPSIS
+.nf
+.B #include <iki.h>
+.sp
+\fBf_status_t fll_iki_content_escape\fP(
+    \fBconst f_string_static_t   \fP\fIcontent\fP,
+    \fBconst f_string_static_t   \fP\fIquote\fP,
+    \fBf_string_dynamic_t *const \fP\fIescaped\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provides a Wiki-Like syntax meant to be much simpler.
+.PP
+This simpler Wiki-Like syntax, called Iki, focuses just on simply adding context. The context itself is not explicitly defined but a few common standards are provided. Escape a string to allow it to be used in its entirety as an IKI content.
+.PP
+This does not copy NULL characters.
+.SH PARAMETERS
+.TP
+.B content
+The string to escape.
+
+.TP
+.B quote
+The quote character in use. This must be either a single (') or double (") quote.
+
+.TP
+.B escaped
+The content whose data is escaped. The escaped string data is appended to this, so set the escaped.used = 0 if "replace" behavior is desired.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_resize().
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_iki/data/documentation/man/man3/fll_iki_content_partial_escape.3 b/level_2/fll_iki/data/documentation/man/man3/fll_iki_content_partial_escape.3
new file mode 100644 (file)
index 0000000..50501f8
--- /dev/null
@@ -0,0 +1,50 @@
+.TH fll_iki_content_partial_escape "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_iki_content_partial_escape
+.SH SYNOPSIS
+.nf
+.B #include <iki.h>
+.sp
+\fBf_status_t fll_iki_content_partial_escape\fP(
+    \fBconst f_string_static_t   \fP\fIcontent\fP,
+    \fBconst f_string_range_t    \fP\fIrange\fP,
+    \fBconst f_string_static_t   \fP\fIquote\fP,
+    \fBf_string_dynamic_t *const \fP\fIescaped\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Escape a string, found within the given range, to allow it to be used in its entirety as an IKI content.
+.PP
+This does not copy NULL characters.
+.SH PARAMETERS
+.TP
+.B content
+The string to escape.
+
+.TP
+.B range
+The range within the buffer that represents the content.
+
+.TP
+.B quote
+The quote character in use. This must be either a single (') or double (") quote.
+
+.TP
+.B escaped
+The content whose data is escaped. The escaped string data is appended to this, so set the escaped.used = 0 if "replace" behavior is desired.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_resize().
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_iki/data/documentation/man/man3/fll_iki_content_partial_unescape.3 b/level_2/fll_iki/data/documentation/man/man3/fll_iki_content_partial_unescape.3
new file mode 100644 (file)
index 0000000..ec350c0
--- /dev/null
@@ -0,0 +1,52 @@
+.TH fll_iki_content_partial_unescape "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_iki_content_partial_unescape
+.SH SYNOPSIS
+.nf
+.B #include <iki.h>
+.sp
+\fBf_status_t fll_iki_content_partial_unescape\fP(
+    \fBconst f_string_static_t   \fP\fIcontent\fP,
+    \fBconst f_string_range_t    \fP\fIrange\fP,
+    \fBconst f_string_static_t   \fP\fIquote\fP,
+    \fBf_string_dynamic_t *const \fP\fIunescaped\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Unescape a string, found within the given range, from IKI content to allow it to be used normally.
+.PP
+This does not copy NULL characters.
+.SH PARAMETERS
+.TP
+.B content
+The string to escape.
+
+.TP
+.B range
+The range within the buffer that represents the content.
+
+.TP
+.B quote
+The quote character in use. This must be either a single (') or double (") quote.
+
+.TP
+.B unescaped
+The content whose data is unescaped. The unescaped string data is appended to this, so set the unescaped.used = 0 if "replace" behavior is desired.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_syntax\fP (with error bit) if the given string is invalid, such as having an undelimited quote.
+.br
+Errors (with error bit) from: f_string_dynamic_resize().
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_iki/data/documentation/man/man3/fll_iki_content_unescape.3 b/level_2/fll_iki/data/documentation/man/man3/fll_iki_content_unescape.3
new file mode 100644 (file)
index 0000000..0bf0fe4
--- /dev/null
@@ -0,0 +1,47 @@
+.TH fll_iki_content_unescape "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_iki_content_unescape
+.SH SYNOPSIS
+.nf
+.B #include <iki.h>
+.sp
+\fBf_status_t fll_iki_content_unescape\fP(
+    \fBconst f_string_static_t   \fP\fIcontent\fP,
+    \fBconst f_string_static_t   \fP\fIquote\fP,
+    \fBf_string_dynamic_t *const \fP\fIunescaped\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Unescape a string from IKI content to allow it to be used normally.
+.PP
+This does not copy NULL characters.
+.SH PARAMETERS
+.TP
+.B content
+The string to escape.
+
+.TP
+.B quote
+The quote character in use. This must be either a single (') or double (") quote.
+
+.TP
+.B unescaped
+The content whose data is unescaped. The unescaped string data is appended to this, so set the unescaped.used = 0 if "replace" behavior is desired.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_syntax\fP (with error bit) if the given string is invalid, such as having an undelimited quote.
+.br
+Errors (with error bit) from: f_string_dynamic_resize().
+.br
+Errors (with error bit) from: f_string_dynamic_increase_by().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index 30b442cd199b08cd1648d04864b3b990f208c6f7..f864e70acc7ee87b892f0aa1538dd1fc2c932a45 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library path.c
 
 build_sources_headers path.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_2/fll_path/data/documentation/man/man3/fll_path_canonical.3 b/level_2/fll_path/data/documentation/man/man3/fll_path_canonical.3
new file mode 100644 (file)
index 0000000..215823b
--- /dev/null
@@ -0,0 +1,44 @@
+.TH fll_path_canonical "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_path_canonical
+.SH SYNOPSIS
+.nf
+.B #include <path.h>
+.sp
+\fBf_status_t fll_path_canonical\fP(
+    \fBconst f_string_static_t   \fP\fIpath\fP,
+    \fBf_string_dynamic_t *const \fP\fIcanonical\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provides path-related functionality. Get the canonical (real) path for some path.
+.PP
+This does not check if the path exists or not. This processes the relative parts: './', '../', and extra '/'. This does not process symbolic links. This has a max size of F_string_t_size_d. This removes trailing slashes, but leaves the leading slash ('/' remains as-is, but '/a/' becomes '/a').
+.PP
+An empty path (first character is NULL or path.used is 0) appends only the current path to canonical.
+.SH PARAMETERS
+.TP
+.B path
+The source path to determine what the canonical path is. This need not be NULL terminated.
+
+.TP
+.B canonical
+The (allocated) canonical file path. The canonical->used is reset to 0 before processing. This will be NULL terminated at canonical->used + 1.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+Errors (with error bit) from: f_path_current().
+.br
+Errors (with error bit) from: f_string_append().
+.br
+Errors (with error bit) from: f_string_append_assure().
+.br
+Errors (with error bit) from: f_string_dynamic_append_assure().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index 0a44320d36eb65143c8e7bdc6fbf225d7fba0533..43bef271f970aeaf06c8000247ea49653fc574e9 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library print.c
 
 build_sources_headers print.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print.3 b/level_2/fll_print/data/documentation/man/man3/fll_print.3
new file mode 100644 (file)
index 0000000..62ffe93
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_print "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print\fP(
+    \fBconst f_string_t       \fP\fIstring\fP,
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBFILE *const            \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provides print-related functionality. This is a variation of f_print() that uses locking.
+.PP
+Errors (with error bit) from: f_print().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_character.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_character.3
new file mode 100644 (file)
index 0000000..0f86148
--- /dev/null
@@ -0,0 +1,34 @@
+.TH fll_print_character "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_character
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_character\fP(
+    \fBconst f_char_t \fP\fIcharacter\fP,
+    \fBFILE *const    \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_character() that uses locking.
+.PP
+Errors (with error bit) from: f_print_character().
+.SH PARAMETERS
+.TP
+.B character
+The character to verify as safe or not and then print.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_character().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_character_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_character_safely.3
new file mode 100644 (file)
index 0000000..ae55859
--- /dev/null
@@ -0,0 +1,34 @@
+.TH fll_print_character_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_character_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_character_safely\fP(
+    \fBconst f_char_t \fP\fIcharacter\fP,
+    \fBFILE *const    \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_character_safely() that uses locking.
+.PP
+Errors (with error bit) from: f_print_character_safely().
+.SH PARAMETERS
+.TP
+.B character
+The character to verify as safe or not and then print.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_character_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_dynamic.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_dynamic.3
new file mode 100644 (file)
index 0000000..48d0ede
--- /dev/null
@@ -0,0 +1,34 @@
+.TH fll_print_dynamic "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_dynamic
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_dynamic\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_dynamic() that uses locking.
+.PP
+Errors (with error bit) from: f_print_dynamic().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_dynamic().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_dynamic_partial.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_dynamic_partial.3
new file mode 100644 (file)
index 0000000..47b64a9
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_print_dynamic_partial "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_dynamic_partial
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_dynamic_partial\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_dynamic_partial() that uses locking.
+.PP
+Errors (with error bit) from: f_print_dynamic_partial().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_dynamic_partial().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_dynamic_partial_raw.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_dynamic_partial_raw.3
new file mode 100644 (file)
index 0000000..f07e33a
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_print_dynamic_partial_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_dynamic_partial_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_dynamic_partial_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_dynamic_partial_raw() that uses locking.
+.PP
+Errors (with error bit) from: f_print_dynamic_partial_raw().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_dynamic_partial_raw().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_dynamic_partial_raw_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_dynamic_partial_raw_safely.3
new file mode 100644 (file)
index 0000000..5783def
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_print_dynamic_partial_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_dynamic_partial_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_dynamic_partial_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_dynamic_partial_raw_safely() that uses locking.
+.PP
+Errors (with error bit) from: f_print_dynamic_partial_raw_safely().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_dynamic_partial_raw_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_dynamic_partial_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_dynamic_partial_safely.3
new file mode 100644 (file)
index 0000000..1266623
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_print_dynamic_partial_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_dynamic_partial_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_dynamic_partial_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_dynamic_partial_safely() that uses locking.
+.PP
+Errors (with error bit) from: f_print_dynamic_partial_safely().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_dynamic_partial_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_dynamic_raw.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_dynamic_raw.3
new file mode 100644 (file)
index 0000000..a98da3d
--- /dev/null
@@ -0,0 +1,34 @@
+.TH fll_print_dynamic_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_dynamic_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_dynamic_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_dynamic_raw() that uses locking.
+.PP
+Errors (with error bit) from: f_print_dynamic_raw().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_dynamic_raw().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_dynamic_raw_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_dynamic_raw_safely.3
new file mode 100644 (file)
index 0000000..74cac0d
--- /dev/null
@@ -0,0 +1,34 @@
+.TH fll_print_dynamic_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_dynamic_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_dynamic_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_dynamic_raw_safely() that uses locking.
+.PP
+Errors (with error bit) from: f_print_dynamic_raw_safely().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_dynamic_raw_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_dynamic_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_dynamic_safely.3
new file mode 100644 (file)
index 0000000..d83395d
--- /dev/null
@@ -0,0 +1,34 @@
+.TH fll_print_dynamic_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_dynamic_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_dynamic_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_dynamic_safely() that uses locking.
+.PP
+Errors (with error bit) from: f_print_dynamic_safely().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_dynamic_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_except.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_except.3
new file mode 100644 (file)
index 0000000..9d78b4e
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fll_print_except "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_except
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_except\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_except_dynamic.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_except_dynamic.3
new file mode 100644 (file)
index 0000000..3ad5049
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_print_except_dynamic "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_except_dynamic
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_except_dynamic\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except_dynamic() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except_dynamic().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except_dynamic().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_except_dynamic_partial.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_except_dynamic_partial.3
new file mode 100644 (file)
index 0000000..90d6c83
--- /dev/null
@@ -0,0 +1,44 @@
+.TH fll_print_except_dynamic_partial "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_except_dynamic_partial
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_except_dynamic_partial\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except_dynamic_partial() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except_dynamic_partial().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except_dynamic_partial().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_except_dynamic_partial_raw.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_except_dynamic_partial_raw.3
new file mode 100644 (file)
index 0000000..9e86037
--- /dev/null
@@ -0,0 +1,44 @@
+.TH fll_print_except_dynamic_partial_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_except_dynamic_partial_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_except_dynamic_partial_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except_dynamic_partial_raw() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except_dynamic_partial_raw().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except_dynamic_partial_raw().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_except_dynamic_partial_raw_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_except_dynamic_partial_raw_safely.3
new file mode 100644 (file)
index 0000000..1dae725
--- /dev/null
@@ -0,0 +1,44 @@
+.TH fll_print_except_dynamic_partial_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_except_dynamic_partial_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_except_dynamic_partial_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except_dynamic_partial_raw_safely() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except_dynamic_partial_raw_safely().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except_dynamic_partial_raw_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_except_dynamic_partial_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_except_dynamic_partial_safely.3
new file mode 100644 (file)
index 0000000..e96e01e
--- /dev/null
@@ -0,0 +1,44 @@
+.TH fll_print_except_dynamic_partial_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_except_dynamic_partial_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_except_dynamic_partial_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except_dynamic_partial_safely() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except_dynamic_partial_safely().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except_dynamic_partial_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_except_dynamic_raw.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_except_dynamic_raw.3
new file mode 100644 (file)
index 0000000..7daaaef
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_print_except_dynamic_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_except_dynamic_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_except_dynamic_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except_dynamic_raw() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except_dynamic_raw().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except_dynamic_raw().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_except_dynamic_raw_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_except_dynamic_raw_safely.3
new file mode 100644 (file)
index 0000000..82a68f3
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_print_except_dynamic_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_except_dynamic_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_except_dynamic_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except_dynamic_raw_safely() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except_dynamic_raw_safely().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except_dynamic_raw_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_except_dynamic_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_except_dynamic_safely.3
new file mode 100644 (file)
index 0000000..980f5f4
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_print_except_dynamic_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_except_dynamic_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_except_dynamic_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except_dynamic_safely() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except_dynamic_safely().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except_dynamic_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_except_in.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_except_in.3
new file mode 100644 (file)
index 0000000..5ba1027
--- /dev/null
@@ -0,0 +1,54 @@
+.TH fll_print_except_in "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_except_in
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_except_in\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except_in() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except_in().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except_in().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_except_in_dynamic.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_except_in_dynamic.3
new file mode 100644 (file)
index 0000000..120339a
--- /dev/null
@@ -0,0 +1,44 @@
+.TH fll_print_except_in_dynamic "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_except_in_dynamic
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_except_in_dynamic\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except_in_dynamic() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except_in_dynamic().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except_in_dynamic().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_except_in_dynamic_partial.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_except_in_dynamic_partial.3
new file mode 100644 (file)
index 0000000..ad9f41c
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fll_print_except_in_dynamic_partial "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_except_in_dynamic_partial
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_except_in_dynamic_partial\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except_in_dynamic_partial() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except_in_dynamic_partial().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except_in_dynamic_partial().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_except_in_dynamic_partial_raw.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_except_in_dynamic_partial_raw.3
new file mode 100644 (file)
index 0000000..5fdf429
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fll_print_except_in_dynamic_partial_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_except_in_dynamic_partial_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_except_in_dynamic_partial_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except_in_dynamic_partial_raw() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except_in_dynamic_partial_raw().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except_in_dynamic_partial_raw().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_except_in_dynamic_partial_raw_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_except_in_dynamic_partial_raw_safely.3
new file mode 100644 (file)
index 0000000..b9b88da
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fll_print_except_in_dynamic_partial_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_except_in_dynamic_partial_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_except_in_dynamic_partial_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except_in_dynamic_partial_raw_safely() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except_in_dynamic_partial_raw_safely().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except_in_dynamic_partial_raw_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_except_in_dynamic_partial_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_except_in_dynamic_partial_safely.3
new file mode 100644 (file)
index 0000000..7693695
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fll_print_except_in_dynamic_partial_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_except_in_dynamic_partial_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_except_in_dynamic_partial_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except_in_dynamic_partial_safely() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except_in_dynamic_partial_safely().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except_in_dynamic_partial_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_except_in_dynamic_raw.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_except_in_dynamic_raw.3
new file mode 100644 (file)
index 0000000..3d0edb6
--- /dev/null
@@ -0,0 +1,44 @@
+.TH fll_print_except_in_dynamic_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_except_in_dynamic_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_except_in_dynamic_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except_in_dynamic_raw() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except_in_dynamic_raw().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except_in_dynamic_raw().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_except_in_dynamic_raw_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_except_in_dynamic_raw_safely.3
new file mode 100644 (file)
index 0000000..30d5c6b
--- /dev/null
@@ -0,0 +1,44 @@
+.TH fll_print_except_in_dynamic_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_except_in_dynamic_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_except_in_dynamic_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except_in_dynamic_raw_safely() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except_in_dynamic_raw_safely().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except_in_dynamic_raw_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_except_in_dynamic_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_except_in_dynamic_safely.3
new file mode 100644 (file)
index 0000000..83258a0
--- /dev/null
@@ -0,0 +1,44 @@
+.TH fll_print_except_in_dynamic_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_except_in_dynamic_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_except_in_dynamic_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except_in_dynamic_safely() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except_in_dynamic_safely().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except_in_dynamic_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_except_in_raw.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_except_in_raw.3
new file mode 100644 (file)
index 0000000..96e3c0c
--- /dev/null
@@ -0,0 +1,54 @@
+.TH fll_print_except_in_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_except_in_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_except_in_raw\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except_in_raw() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except_in_raw().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except_in_raw().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_except_in_raw_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_except_in_raw_safely.3
new file mode 100644 (file)
index 0000000..fcc3853
--- /dev/null
@@ -0,0 +1,54 @@
+.TH fll_print_except_in_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_except_in_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_except_in_raw_safely\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except_in_raw_safely() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except_in_raw_safely().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except_in_raw_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_except_in_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_except_in_safely.3
new file mode 100644 (file)
index 0000000..19f83ac
--- /dev/null
@@ -0,0 +1,54 @@
+.TH fll_print_except_in_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_except_in_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_except_in_safely\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except_in_safely() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except_in_safely().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except_in_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_except_raw.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_except_raw.3
new file mode 100644 (file)
index 0000000..09f7b06
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fll_print_except_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_except_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_except_raw\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except_raw() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except_raw().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except_raw().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_except_raw_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_except_raw_safely.3
new file mode 100644 (file)
index 0000000..82ba255
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fll_print_except_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_except_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_except_raw_safely\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except_raw_safely() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except_raw_safely().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except_raw_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_except_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_except_safely.3
new file mode 100644 (file)
index 0000000..a7c56b2
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fll_print_except_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_except_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_except_safely\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except_safely() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except_safely().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_format.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_format.3
new file mode 100644 (file)
index 0000000..1a828d3
--- /dev/null
@@ -0,0 +1,38 @@
+.TH fll_print_format "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_format
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_format\fP(
+    \fBconst f_string_t \fP\fIstring\fP,
+    \fBFILE *const      \fP\fIoutput\fP,
+    \fB...              \fP\fI\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_format() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_format().
+.SH PARAMETERS
+.TP
+.B string
+The formatted string to process and output. This is a NULL terminated string.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.TP
+.B
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_format().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_format_convert.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_format_convert.3
new file mode 100644 (file)
index 0000000..541ecca
--- /dev/null
@@ -0,0 +1,42 @@
+.TH fll_print_format_convert "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_format_convert
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_string_t fll_print_format_convert\fP(
+    \fBconst f_string_t \fP\fIcurrent\fP,
+    \fBFILE *const      \fP\fIoutput\fP,
+    \fBva_list          \fP\fIap\fP,
+    \fBf_status_t      *\fP\fIstatus\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_format_convert() that uses locking.
+.SH PARAMETERS
+.TP
+.B current
+The current character position within the string.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.TP
+.B ap
+The variable arguments list.
+
+.TP
+.B status
+The status is stored here rather then via the return.
+
+.SH RETURN VALUE
+.PP
+Result from: fl_print_format_convert().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_raw.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_raw.3
new file mode 100644 (file)
index 0000000..3cdfa92
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_print_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_raw\fP(
+    \fBconst f_string_t       \fP\fIstring\fP,
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBFILE *const            \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_raw() that uses locking.
+.PP
+Errors (with error bit) from: f_print_raw().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_raw().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_raw_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_raw_safely.3
new file mode 100644 (file)
index 0000000..e0a930d
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_print_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_raw_safely\fP(
+    \fBconst f_string_t       \fP\fIstring\fP,
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBFILE *const            \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_raw_safely() that uses locking.
+.PP
+Errors (with error bit) from: f_print_raw_safely().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_raw_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_raw_terminated.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_raw_terminated.3
new file mode 100644 (file)
index 0000000..308fa41
--- /dev/null
@@ -0,0 +1,34 @@
+.TH fll_print_raw_terminated "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_raw_terminated
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_raw_terminated\fP(
+    \fBconst f_string_t \fP\fIstring\fP,
+    \fBFILE *const      \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_raw_terminated() that uses locking.
+.PP
+Errors (with error bit) from: f_print_raw_terminated().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_raw_terminated().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_safely.3
new file mode 100644 (file)
index 0000000..5c44bfd
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_print_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_safely\fP(
+    \fBconst f_string_t       \fP\fIstring\fP,
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBFILE *const            \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_safely() that uses locking.
+.PP
+Errors (with error bit) from: f_print_safely().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_safely_terminated.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_safely_terminated.3
new file mode 100644 (file)
index 0000000..4dee0b4
--- /dev/null
@@ -0,0 +1,34 @@
+.TH fll_print_safely_terminated "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_safely_terminated
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_safely_terminated\fP(
+    \fBconst f_string_t \fP\fIstring\fP,
+    \fBFILE *const      \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_safely_terminated() that uses locking.
+.PP
+Errors (with error bit) from: f_print_safely_terminated().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_safely_terminated().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_string_va.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_string_va.3
new file mode 100644 (file)
index 0000000..8e3bfa8
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_print_string_va "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_string_va
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_string_va\fP(
+    \fBconst f_string_t \fP\fIstring\fP,
+    \fBFILE *const      \fP\fIoutput\fP,
+    \fBva_list          \fP\fIap\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_string_va() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_string_va().
+.SH PARAMETERS
+.TP
+.B string
+The formatted string to process and output.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.TP
+.B ap
+The variable list. The va_start(ap, string) and va_end(ap) is required to be called outside this function.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_string_va().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_terminated.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_terminated.3
new file mode 100644 (file)
index 0000000..7d301df
--- /dev/null
@@ -0,0 +1,34 @@
+.TH fll_print_terminated "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_terminated
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_terminated\fP(
+    \fBconst f_string_t \fP\fIstring\fP,
+    \fBFILE *const      \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_terminated() that uses locking.
+.PP
+Errors (with error bit) from: f_print_terminated().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_terminated().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim.3
new file mode 100644 (file)
index 0000000..1ca7022
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_print_trim "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim\fP(
+    \fBconst f_string_t       \fP\fIstring\fP,
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBFILE *const            \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_dynamic.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_dynamic.3
new file mode 100644 (file)
index 0000000..b512c7f
--- /dev/null
@@ -0,0 +1,34 @@
+.TH fll_print_trim_dynamic "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_dynamic
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_dynamic\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_dynamic() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_dynamic().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_dynamic().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_dynamic_partial.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_dynamic_partial.3
new file mode 100644 (file)
index 0000000..f8bc25f
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_print_trim_dynamic_partial "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_dynamic_partial
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_dynamic_partial\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_dynamic_partial() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_dynamic_partial().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_dynamic_partial().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_dynamic_partial_raw.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_dynamic_partial_raw.3
new file mode 100644 (file)
index 0000000..679a921
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_print_trim_dynamic_partial_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_dynamic_partial_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_dynamic_partial_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_dynamic_partial_raw() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_dynamic_partial_raw().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_dynamic_partial_raw().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_dynamic_partial_raw_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_dynamic_partial_raw_safely.3
new file mode 100644 (file)
index 0000000..1d46591
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_print_trim_dynamic_partial_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_dynamic_partial_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_dynamic_partial_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except_dynamic_partial() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except_dynamic_partial().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except_dynamic_partial().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_dynamic_partial_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_dynamic_partial_safely.3
new file mode 100644 (file)
index 0000000..095c1e3
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_print_trim_dynamic_partial_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_dynamic_partial_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_dynamic_partial_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of f_print_except_dynamic_partial() that uses locking.
+.PP
+Errors (with error bit) from: f_print_except_dynamic_partial().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: f_print_except_dynamic_partial().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_dynamic_raw.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_dynamic_raw.3
new file mode 100644 (file)
index 0000000..d90d4a3
--- /dev/null
@@ -0,0 +1,34 @@
+.TH fll_print_trim_dynamic_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_dynamic_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_dynamic_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_dynamic_raw() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_dynamic_raw().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_dynamic_raw().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_dynamic_raw_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_dynamic_raw_safely.3
new file mode 100644 (file)
index 0000000..3b813a4
--- /dev/null
@@ -0,0 +1,34 @@
+.TH fll_print_trim_dynamic_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_dynamic_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_dynamic_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_dynamic_raw_safely() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_dynamic_raw_safely().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_dynamic_raw_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_dynamic_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_dynamic_safely.3
new file mode 100644 (file)
index 0000000..7ad9506
--- /dev/null
@@ -0,0 +1,34 @@
+.TH fll_print_trim_dynamic_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_dynamic_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_dynamic_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_dynamic_safely() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_dynamic_safely().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_dynamic_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except.3
new file mode 100644 (file)
index 0000000..0e01bba
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fll_print_trim_except "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_except
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_except\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_except() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_except().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_except().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_dynamic.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_dynamic.3
new file mode 100644 (file)
index 0000000..10923a4
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_print_trim_except_dynamic "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_except_dynamic
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_except_dynamic\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_except_dynamic() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_except_dynamic().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_except_dynamic().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_dynamic_partial.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_dynamic_partial.3
new file mode 100644 (file)
index 0000000..8127980
--- /dev/null
@@ -0,0 +1,44 @@
+.TH fll_print_trim_except_dynamic_partial "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_except_dynamic_partial
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_except_dynamic_partial\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_except_dynamic_partial() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_except_dynamic_partial().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_except_dynamic_partial().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_dynamic_partial_raw.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_dynamic_partial_raw.3
new file mode 100644 (file)
index 0000000..d95e8ba
--- /dev/null
@@ -0,0 +1,44 @@
+.TH fll_print_trim_except_dynamic_partial_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_except_dynamic_partial_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_except_dynamic_partial_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_except_dynamic_partial_raw() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_except_dynamic_partial_raw().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_except_dynamic_partial_raw().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_dynamic_partial_raw_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_dynamic_partial_raw_safely.3
new file mode 100644 (file)
index 0000000..ee0ce67
--- /dev/null
@@ -0,0 +1,44 @@
+.TH fll_print_trim_except_dynamic_partial_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_except_dynamic_partial_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_except_dynamic_partial_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_except_dynamic_partial_raw_safely() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_except_dynamic_partial_raw_safely().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_except_dynamic_partial_raw_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_dynamic_partial_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_dynamic_partial_safely.3
new file mode 100644 (file)
index 0000000..3ded2f7
--- /dev/null
@@ -0,0 +1,44 @@
+.TH fll_print_trim_except_dynamic_partial_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_except_dynamic_partial_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_except_dynamic_partial_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_except_dynamic_partial_safely() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_except_dynamic_partial_safely().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_except_dynamic_partial_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_dynamic_raw.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_dynamic_raw.3
new file mode 100644 (file)
index 0000000..0b64330
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_print_trim_except_dynamic_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_except_dynamic_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_except_dynamic_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_except_dynamic_raw() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_except_dynamic_raw().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_except_dynamic_raw().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_dynamic_raw_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_dynamic_raw_safely.3
new file mode 100644 (file)
index 0000000..9ba7803
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_print_trim_except_dynamic_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_except_dynamic_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_except_dynamic_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_except_dynamic_raw_safely() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_except_dynamic_raw_safely().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_except_dynamic_raw_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_dynamic_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_dynamic_safely.3
new file mode 100644 (file)
index 0000000..d744c64
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_print_trim_except_dynamic_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_except_dynamic_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_except_dynamic_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_except_dynamic_safely() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_except_dynamic_safely().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_except_dynamic_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in.3
new file mode 100644 (file)
index 0000000..c63c3f9
--- /dev/null
@@ -0,0 +1,54 @@
+.TH fll_print_trim_except_in "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_except_in
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_except_in\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_except_in() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_except_in().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_except_in().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_dynamic.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_dynamic.3
new file mode 100644 (file)
index 0000000..ee0f55b
--- /dev/null
@@ -0,0 +1,44 @@
+.TH fll_print_trim_except_in_dynamic "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_except_in_dynamic
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_except_in_dynamic\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_except_in_dynamic() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_except_in_dynamic().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_except_in_dynamic().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_dynamic_partial.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_dynamic_partial.3
new file mode 100644 (file)
index 0000000..c93c0c0
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fll_print_trim_except_in_dynamic_partial "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_except_in_dynamic_partial
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_except_in_dynamic_partial\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_except_in_dynamic_partial() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_except_in_dynamic_partial().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_except_in_dynamic_partial().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_dynamic_partial_raw.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_dynamic_partial_raw.3
new file mode 100644 (file)
index 0000000..e0399cf
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fll_print_trim_except_in_dynamic_partial_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_except_in_dynamic_partial_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_except_in_dynamic_partial_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_except_in_dynamic_partial_raw() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_except_in_dynamic_partial_raw().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_except_in_dynamic_partial_raw().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_dynamic_partial_raw_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_dynamic_partial_raw_safely.3
new file mode 100644 (file)
index 0000000..d41ac6f
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fll_print_trim_except_in_dynamic_partial_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_except_in_dynamic_partial_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_except_in_dynamic_partial_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_except_in_dynamic_partial_raw_safely() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_except_in_dynamic_partial_raw_safely().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_except_in_dynamic_partial_raw_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_dynamic_partial_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_dynamic_partial_safely.3
new file mode 100644 (file)
index 0000000..4fc0ecc
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fll_print_trim_except_in_dynamic_partial_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_except_in_dynamic_partial_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_except_in_dynamic_partial_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_string_range_t  \fP\fIrange\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_except_in_dynamic_partial_safely() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_except_in_dynamic_partial_safely().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B range
+The range within the provided string to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_except_in_dynamic_partial_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_dynamic_raw.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_dynamic_raw.3
new file mode 100644 (file)
index 0000000..3405639
--- /dev/null
@@ -0,0 +1,44 @@
+.TH fll_print_trim_except_in_dynamic_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_except_in_dynamic_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_except_in_dynamic_raw\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_except_in_dynamic_raw() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_except_in_dynamic_raw().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_except_in_dynamic_raw().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_dynamic_raw_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_dynamic_raw_safely.3
new file mode 100644 (file)
index 0000000..fbfc440
--- /dev/null
@@ -0,0 +1,44 @@
+.TH fll_print_trim_except_in_dynamic_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_except_in_dynamic_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_except_in_dynamic_raw_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_except_in_dynamic_raw_safely() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_except_in_dynamic_raw_safely().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_except_in_dynamic_raw_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_dynamic_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_dynamic_safely.3
new file mode 100644 (file)
index 0000000..996f17c
--- /dev/null
@@ -0,0 +1,44 @@
+.TH fll_print_trim_except_in_dynamic_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_except_in_dynamic_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_except_in_dynamic_safely\fP(
+    \fBconst f_string_static_t \fP\fIbuffer\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_except_in_dynamic_safely() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_except_in_dynamic_safely().
+.SH PARAMETERS
+.TP
+.B buffer
+The string to output.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_except_in_dynamic_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_raw.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_raw.3
new file mode 100644 (file)
index 0000000..56589b7
--- /dev/null
@@ -0,0 +1,54 @@
+.TH fll_print_trim_except_in_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_except_in_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_except_in_raw\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_except_in_raw() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_except_in_raw().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_except_in_raw().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_raw_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_raw_safely.3
new file mode 100644 (file)
index 0000000..c961aac
--- /dev/null
@@ -0,0 +1,54 @@
+.TH fll_print_trim_except_in_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_except_in_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_except_in_raw_safely\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_except_in_raw_safely() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_except_in_raw_safely().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_except_in_raw_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_in_safely.3
new file mode 100644 (file)
index 0000000..f927f61
--- /dev/null
@@ -0,0 +1,54 @@
+.TH fll_print_trim_except_in_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_except_in_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_except_in_safely\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept_at\fP,
+    \fBconst f_string_ranges_t \fP\fIexcept_in\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_except_in_safely() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_except_in_safely().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except_at
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B except_in
+An array of ranges within the string to not print. The array of ranges is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_except_in_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_raw.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_raw.3
new file mode 100644 (file)
index 0000000..8b7ff1f
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fll_print_trim_except_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_except_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_except_raw\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_except_raw() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_except_raw().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_except_raw().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_raw_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_raw_safely.3
new file mode 100644 (file)
index 0000000..ee570e7
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fll_print_trim_except_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_except_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_except_raw_safely\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_except_raw_safely() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_except_raw_safely().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_except_raw_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_except_safely.3
new file mode 100644 (file)
index 0000000..6405f88
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fll_print_trim_except_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_except_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_except_safely\fP(
+    \fBconst f_string_t        \fP\fIstring\fP,
+    \fBconst f_array_length_t  \fP\fIoffset\fP,
+    \fBconst f_array_length_t  \fP\fIlength\fP,
+    \fBconst f_array_lengths_t \fP\fIexcept\fP,
+    \fBFILE *const             \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_except_safely() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_except_safely().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B offset
+The inclusive start point to start printing.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B except
+An array of locations within the given string to not print. The array of locations is required/assumed to be in linear order.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_except_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_raw.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_raw.3
new file mode 100644 (file)
index 0000000..79ec00e
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_print_trim_raw "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_raw
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_raw\fP(
+    \fBconst f_string_t       \fP\fIstring\fP,
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBFILE *const            \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_raw() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_raw().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_raw().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_raw_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_raw_safely.3
new file mode 100644 (file)
index 0000000..9922869
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_print_trim_raw_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_raw_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_raw_safely\fP(
+    \fBconst f_string_t       \fP\fIstring\fP,
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBFILE *const            \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_raw_safely() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_raw_safely().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_raw_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_print/data/documentation/man/man3/fll_print_trim_safely.3 b/level_2/fll_print/data/documentation/man/man3/fll_print_trim_safely.3
new file mode 100644 (file)
index 0000000..97277fb
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_print_trim_safely "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_print_trim_safely
+.SH SYNOPSIS
+.nf
+.B #include <print.h>
+.sp
+\fBf_status_t fll_print_trim_safely\fP(
+    \fBconst f_string_t       \fP\fIstring\fP,
+    \fBconst f_array_length_t \fP\fIlength\fP,
+    \fBFILE *const            \fP\fIoutput\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This is a variation of fl_print_trim_safely() that uses locking.
+.PP
+Errors (with error bit) from: fl_print_trim_safely().
+.SH PARAMETERS
+.TP
+.B string
+The string to output.
+
+.TP
+.B length
+The total number of characters to print.
+
+.TP
+.B output
+The file stream to output to, including standard streams such as stdout and stderr.
+
+.SH RETURN VALUE
+.PP
+Success from: fl_print_trim_safely().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index 71e3b1d0d180d1e81003d547b3afd20922fb930e..981a06172e21866fd5a95860a36bac160281f7e4 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library program.c program/common.c private-program.c
 
 build_sources_headers program.h program/common.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_2/fll_program/data/documentation/man/man3/fll_program_data_delete.3 b/level_2/fll_program/data/documentation/man/man3/fll_program_data_delete.3
new file mode 100644 (file)
index 0000000..88f7842
--- /dev/null
@@ -0,0 +1,33 @@
+.TH fll_program_data_delete "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_program_data_delete
+.SH SYNOPSIS
+.nf
+.B #include <common.h>
+.sp
+\fBf_status_t fll_program_data_delete\fP(
+    \fBfll_program_data_t *const \fP\fIdata\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Delete any dynamic allocated data on the program data object.
+.PP
+
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.SH PARAMETERS
+.TP
+.B data
+The program data object.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+Errors (with error bit) from: f_console_parameters_delete().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_program/data/documentation/man/man3/fll_program_data_destroy.3 b/level_2/fll_program/data/documentation/man/man3/fll_program_data_destroy.3
new file mode 100644 (file)
index 0000000..35dbc9e
--- /dev/null
@@ -0,0 +1,31 @@
+.TH fll_program_data_destroy "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_program_data_destroy
+.SH SYNOPSIS
+.nf
+.B #include <common.h>
+.sp
+\fBf_status_t fll_program_data_destroy\fP(
+    \fBfll_program_data_t *const \fP\fIdata\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Destroy any dynamic allocated data on the program data object.
+.SH PARAMETERS
+.TP
+.B data
+The program data object.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_console_parameters_destroy().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_program/data/documentation/man/man3/fll_program_parameter_additional_append.3 b/level_2/fll_program/data/documentation/man/man3/fll_program_parameter_additional_append.3
new file mode 100644 (file)
index 0000000..08310b9
--- /dev/null
@@ -0,0 +1,51 @@
+.TH fll_program_parameter_additional_append "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_program_parameter_additional_append
+.SH SYNOPSIS
+.nf
+.B #include <program.h>
+.sp
+\fBf_status_t fll_program_parameter_additional_append\fP(
+    \fBconst f_string_static_t *const \fP\fIarguments\fP,
+    \fBconst f_array_lengths_t        \fP\fIvalues\fP,
+    \fBf_string_dynamics_t *const     \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Allocate new strings from all of the provided locations.
+.PP
+These new strings are appended onto the destination.
+.PP
+Empty console parameters are ignored.
+.SH PARAMETERS
+.TP
+.B arguments
+The program argument array to parse. The caller must guarantee that the indexes within values do not exceed the arguments array length.
+
+.TP
+.B values
+The string locations where the console parameters are found.
+
+.TP
+.B destination
+An array of dynamic strings each representing a console parameter.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if nothing to rip, no allocations or reallocations are performed.
+.br
+\fBF_array_too_large\fP (with error bit) if a buffer would exceed max length.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_string_dynamic_append().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_program/data/documentation/man/man3/fll_program_parameter_additional_mash.3 b/level_2/fll_program/data/documentation/man/man3/fll_program_parameter_additional_mash.3
new file mode 100644 (file)
index 0000000..79b5fc1
--- /dev/null
@@ -0,0 +1,52 @@
+.TH fll_program_parameter_additional_mash "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_program_parameter_additional_mash
+.SH SYNOPSIS
+.nf
+.B #include <program.h>
+.sp
+\fBf_status_t fll_program_parameter_additional_mash\fP(
+    \fBconst f_string_static_t   \fP\fIglue\fP,
+    \fBconst f_string_static_t  *\fP\fIarguments\fP,
+    \fBconst f_array_lengths_t   \fP\fIvalues\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Mash together all values arguments associated with a given console parameter.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B arguments
+The program argument array to parse. The caller must guarantee that the indexes within values do not exceed the arguments array length.
+
+.TP
+.B values
+The string locations where the console parameters are found.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if nothing to rip, no allocations or reallocations are performed.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_string_dynamic_mash().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_program/data/documentation/man/man3/fll_program_parameter_additional_rip.3 b/level_2/fll_program/data/documentation/man/man3/fll_program_parameter_additional_rip.3
new file mode 100644 (file)
index 0000000..bee5925
--- /dev/null
@@ -0,0 +1,47 @@
+.TH fll_program_parameter_additional_rip "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_program_parameter_additional_rip
+.SH SYNOPSIS
+.nf
+.B #include <program.h>
+.sp
+\fBf_status_t fll_program_parameter_additional_rip\fP(
+    \fBconst f_string_static_t *const \fP\fIarguments\fP,
+    \fBconst f_array_lengths_t        \fP\fIvalues\fP,
+    \fBf_string_dynamics_t *const     \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Allocate new strings from all of the provided locations.
+.PP
+The console parameters are trimmed.
+.SH PARAMETERS
+.TP
+.B arguments
+The program argument array to parse. The caller must guarantee that the indexes within values do not exceed the arguments array length.
+
+.TP
+.B values
+The string locations where the console parameters are found.
+
+.TP
+.B destination
+An array of dynamic strings each representing a console parameter.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if nothing to rip, no allocations or reallocations are performed.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: fl_string_dynamic_rip().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_program/data/documentation/man/man3/fll_program_parameter_additional_rip_mash.3 b/level_2/fll_program/data/documentation/man/man3/fll_program_parameter_additional_rip_mash.3
new file mode 100644 (file)
index 0000000..eedc3fa
--- /dev/null
@@ -0,0 +1,56 @@
+.TH fll_program_parameter_additional_rip_mash "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_program_parameter_additional_rip_mash
+.SH SYNOPSIS
+.nf
+.B #include <program.h>
+.sp
+\fBf_status_t fll_program_parameter_additional_rip_mash\fP(
+    \fBconst f_string_static_t   \fP\fIglue\fP,
+    \fBconst f_string_static_t  *\fP\fIarguments\fP,
+    \fBconst f_array_lengths_t   \fP\fIvalues\fP,
+    \fBf_string_dynamic_t *const \fP\fIdestination\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Mash together all values arguments associated with a given console parameter.
+.PP
+The console parameter is trimmed before mashing.
+.SH PARAMETERS
+.TP
+.B glue
+A string to append between the source and destination, such as a space: ' '.
+
+.TP
+.B arguments
+The program argument array to parse. The caller must guarantee that the indexes within values do not exceed the arguments array length.
+
+.TP
+.B values
+The string locations where the console parameters are found.
+
+.TP
+.B destination
+The destination string the source and glue are appended onto.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if nothing to rip, no allocations or reallocations are performed.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+\fBF_string_too_large\fP (with error bit) if the combined string is too large.
+.br
+Errors (with error bit) from: f_string_dynamic_mash().
+.br
+Errors (with error bit) from: fl_string_dynamic_rip().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_program/data/documentation/man/man3/fll_program_parameter_long_print_cannot_use_with.3 b/level_2/fll_program/data/documentation/man/man3/fll_program_parameter_long_print_cannot_use_with.3
new file mode 100644 (file)
index 0000000..8a15598
--- /dev/null
@@ -0,0 +1,39 @@
+.TH fll_program_parameter_long_print_cannot_use_with "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_program_parameter_long_print_cannot_use_with
+.SH SYNOPSIS
+.nf
+.B #include <program.h>
+.sp
+\fBf_status_t fll_program_parameter_long_print_cannot_use_with\fP(
+    \fBconst fl_print_t        \fP\fIprint\fP,
+    \fBconst f_string_static_t \fP\fIfirst\fP,
+    \fBconst f_string_static_t \fP\fIsecond\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print message about two long parameters not being allowed to be used together.
+.PP
+This assumes both of the long parameters use f_console_symbol_long_enable_s.
+.SH PARAMETERS
+.TP
+.B print
+The output structure.
+
+.TP
+.B first
+The first string.
+
+.TP
+.B second
+The second string.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_program/data/documentation/man/man3/fll_program_parameter_process.3 b/level_2/fll_program/data/documentation/man/man3/fll_program_parameter_process.3
new file mode 100644 (file)
index 0000000..a46cd28
--- /dev/null
@@ -0,0 +1,61 @@
+.TH fll_program_parameter_process "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_program_parameter_process
+.SH SYNOPSIS
+.nf
+.B #include <program.h>
+.sp
+\fBf_status_t fll_program_parameter_process\fP(
+    \fBconst f_console_arguments_t     \fP\fIarguments\fP,
+    \fBf_console_parameters_t *const   \fP\fIparameters\fP,
+    \fBconst f_console_parameter_ids_t \fP\fIchoices\fP,
+    \fBconst bool                      \fP\fIright\fP,
+    \fBf_color_context_t *const        \fP\fIcontext\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Perform basic parameter loading, including initialization of color context.
+.SH PARAMETERS
+.TP
+.B arguments
+The parameters passed to the process.
+
+.TP
+.B parameters
+The console parameters to look for.
+
+.TP
+.B choices
+A set of the color options: no-color option, light-color option, dark-color option. This must have its used size set to 3 and the ids are expected to be in this order: no_color, light, and dark.
+
+.TP
+.B right
+Set to TRUE for right priortization and FALSE for left prioritization.
+
+.TP
+.B context
+The color context.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if "values" parameters were expected but not found.
+.br
+\fBF_memory_not\fP (with error bit) on out of memory.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_console_parameter_prioritize_left().
+.br
+Errors (with error bit) from: f_console_parameter_prioritize_right().
+.br
+Errors (with error bit) from: f_console_parameter_process().
+.br
+Errors (with error bit) from: f_color_load_context().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_program/data/documentation/man/man3/fll_program_parameter_process_empty.3 b/level_2/fll_program/data/documentation/man/man3/fll_program_parameter_process_empty.3
new file mode 100644 (file)
index 0000000..2a113bd
--- /dev/null
@@ -0,0 +1,86 @@
+.TH fll_program_parameter_process_empty "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_program_parameter_process_empty
+.SH SYNOPSIS
+.nf
+.B #include <program.h>
+.sp
+\fBvoid fll_program_parameter_process_empty\fP(
+    \fBf_color_context_t *const \fP\fIcontext\fP,
+    \fBf_color_set_t *const     \fP\fIsets\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Set the provided context to empty along with all additional color sets.
+.PP
+This will allow for safe usage of the color context and color sets to be safely processed when colors are disabled.
+.SH PARAMETERS
+.TP
+.B context
+The primary color context to assign.
+
+.TP
+.B sets
+(optional) A NULL terminated array representing additional sets to assign as empty. Set to NULL to not use.
+
+.SH STRUCTURES
+.SS ""
+.PP
+.sp
+.PP
+Provide a color context structure.
+.PP
+This is intended to be used for printing, and this provides a management structure for all color context related data.
+.PP
+list: A list of colors, each with their specific color code string. format: The color code formatting strings. mode: A code representing the color mode. set: A collection of color context sets for direct use in color printing.
+.PP
+error: Color context associated with "error". important: Color context associated with "important". normal: Color context associated with "normal". normal_reset: Color context associated with "normal_reset". notable: Color context associated with "notable". reset: Reset the color context. standout: Color context associated with "standout". success: Color context associated with "success". title: Color context associated with "title". warning: Color context associated with "warning".
+.sp
+.RS
+.nf
+\fB
+struct f_color_context_t {
+  f_color_t             \fIlist\fP;
+  f_color_format_t      \fIformat\fP;
+  f_color_mode_t        \fImode\fP;
+  f_color_set_context_t \fIset\fP;
+  f_string_dynamic_t    \fIerror\fP;
+  f_string_dynamic_t    \fIimportant\fP;
+  f_string_dynamic_t    \fInormal\fP;
+  f_string_dynamic_t    \fInormal_reset\fP;
+  f_string_dynamic_t    \fInotable\fP;
+  f_string_dynamic_t    \fIreset\fP;
+  f_string_dynamic_t    \fIstandout\fP;
+  f_string_dynamic_t    \fIsuccess\fP;
+  f_string_dynamic_t    \fItitle\fP;
+  f_string_dynamic_t    \fIwarning\fP;
+};
+\fP
+.fi
+.RE
+.SS ""
+.PP
+.sp
+.PP
+Provide a set of two colors, a before and an after.
+.PP
+This is intended to be used for printing, such that the printed code is prefixed with the "before" and postfixed with the "after". These color strings should be NULL terminated.
+.PP
+before: A pointer to the dynamic string representing the before color to assign, set to NULL to disable. after: A pointer to the dynamic string representing the after color to assign, set to NULL to disable.
+.sp
+.RS
+.nf
+\fB
+struct f_color_set_t {
+  const f_string_static_t  *\fIbefore\fP;
+  const f_string_static_t  *\fIafter\fP;
+};
+\fP
+.fi
+.RE
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_program/data/documentation/man/man3/fll_program_print_help_header.3 b/level_2/fll_program/data/documentation/man/man3/fll_program_print_help_header.3
new file mode 100644 (file)
index 0000000..d76c13b
--- /dev/null
@@ -0,0 +1,44 @@
+.TH fll_program_print_help_header "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_program_print_help_header
+.SH SYNOPSIS
+.nf
+.B #include <program.h>
+.sp
+\fBf_status_t fll_program_print_help_header\fP(
+    \fBconst f_file_t          \fP\fIoutput\fP,
+    \fBconst f_color_context_t \fP\fIcontext\fP,
+    \fBconst f_string_static_t \fP\fIname\fP,
+    \fBconst f_string_static_t \fP\fIversion\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provide functions commonly used by FLL based programs. Print standard help header.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B output
+The file stream to output to.
+
+.TP
+.B context
+The color context.
+
+.TP
+.B name
+The name of the program.
+
+.TP
+.B version
+The version number of the program.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_program/data/documentation/man/man3/fll_program_print_help_option.3 b/level_2/fll_program/data/documentation/man/man3/fll_program_print_help_option.3
new file mode 100644 (file)
index 0000000..c0c9598
--- /dev/null
@@ -0,0 +1,59 @@
+.TH fll_program_print_help_option "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_program_print_help_option
+.SH SYNOPSIS
+.nf
+.B #include <program.h>
+.sp
+\fBf_status_t fll_program_print_help_option\fP(
+    \fBconst f_file_t          \fP\fIoutput\fP,
+    \fBconst f_color_context_t \fP\fIcontext\fP,
+    \fBconst f_string_static_t \fP\fIoption_short\fP,
+    \fBconst f_string_static_t \fP\fIoption_long\fP,
+    \fBconst f_string_static_t \fP\fIsymbol_short\fP,
+    \fBconst f_string_static_t \fP\fIsymbol_long\fP,
+    \fBconst char             *\fP\fIdescription\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print standard help option.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B output
+The file stream to output to.
+
+.TP
+.B context
+The color context.
+
+.TP
+.B option_short
+The short name of the option.
+
+.TP
+.B option_long
+The long name of the option.
+
+.TP
+.B symbol_short
+The short symbol of the option.
+
+.TP
+.B symbol_long
+The long symbol of the option.
+
+.TP
+.B description
+A desciption associated with the option.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_program/data/documentation/man/man3/fll_program_print_help_option_long.3 b/level_2/fll_program/data/documentation/man/man3/fll_program_print_help_option_long.3
new file mode 100644 (file)
index 0000000..eded77b
--- /dev/null
@@ -0,0 +1,49 @@
+.TH fll_program_print_help_option_long "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_program_print_help_option_long
+.SH SYNOPSIS
+.nf
+.B #include <program.h>
+.sp
+\fBf_status_t fll_program_print_help_option_long\fP(
+    \fBconst f_file_t          \fP\fIoutput\fP,
+    \fBconst f_color_context_t \fP\fIcontext\fP,
+    \fBconst f_string_static_t \fP\fIoption_long\fP,
+    \fBconst f_string_static_t \fP\fIsymbol_long\fP,
+    \fBconst char             *\fP\fIdescription\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print standard help option (long option only).
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B output
+The file stream to output to.
+
+.TP
+.B context
+The color context.
+
+.TP
+.B option_long
+The long name of the option.
+
+.TP
+.B symbol_long
+The long symbol of the option.
+
+.TP
+.B description
+A desciption associated with the option.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_program/data/documentation/man/man3/fll_program_print_help_option_other.3 b/level_2/fll_program/data/documentation/man/man3/fll_program_print_help_option_other.3
new file mode 100644 (file)
index 0000000..8b2ad21
--- /dev/null
@@ -0,0 +1,44 @@
+.TH fll_program_print_help_option_other "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_program_print_help_option_other
+.SH SYNOPSIS
+.nf
+.B #include <program.h>
+.sp
+\fBf_status_t fll_program_print_help_option_other\fP(
+    \fBconst f_file_t          \fP\fIoutput\fP,
+    \fBconst f_color_context_t \fP\fIcontext\fP,
+    \fBconst f_string_static_t \fP\fIoption_other\fP,
+    \fBconst char             *\fP\fIdescription\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print standard help option (other option only).
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B output
+The file stream to output to.
+
+.TP
+.B context
+The color context.
+
+.TP
+.B option_other
+The other name of the option.
+
+.TP
+.B description
+A desciption associated with the option.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_program/data/documentation/man/man3/fll_program_print_help_usage.3 b/level_2/fll_program/data/documentation/man/man3/fll_program_print_help_usage.3
new file mode 100644 (file)
index 0000000..e36d878
--- /dev/null
@@ -0,0 +1,44 @@
+.TH fll_program_print_help_usage "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_program_print_help_usage
+.SH SYNOPSIS
+.nf
+.B #include <program.h>
+.sp
+\fBf_status_t fll_program_print_help_usage\fP(
+    \fBconst f_file_t          \fP\fIoutput\fP,
+    \fBconst f_color_context_t \fP\fIcontext\fP,
+    \fBconst f_string_static_t \fP\fIname\fP,
+    \fBconst f_string_static_t \fP\fIparameters\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print standard help usage.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B output
+The file stream to output to.
+
+.TP
+.B context
+The color context.
+
+.TP
+.B name
+The name of the program.
+
+.TP
+.B parameters
+(optional) The non-option parameters to be displayed inside the brackets. Set the first array value to EOS to disable printing of parameters. Set parameters.used to 0 to disable.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_program/data/documentation/man/man3/fll_program_print_version.3 b/level_2/fll_program/data/documentation/man/man3/fll_program_print_version.3
new file mode 100644 (file)
index 0000000..c88d681
--- /dev/null
@@ -0,0 +1,34 @@
+.TH fll_program_print_version "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_program_print_version
+.SH SYNOPSIS
+.nf
+.B #include <program.h>
+.sp
+\fBf_status_t fll_program_print_version\fP(
+    \fBconst f_file_t          \fP\fIoutput\fP,
+    \fBconst f_string_static_t \fP\fIversion\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Print the program version.
+.PP
+This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
+.SH PARAMETERS
+.TP
+.B output
+The file stream to output to.
+
+.TP
+.B version
+The version number of the program.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_program/data/documentation/man/man3/fll_program_standard_setdown.3 b/level_2/fll_program/data/documentation/man/man3/fll_program_standard_setdown.3
new file mode 100644 (file)
index 0000000..eef0cdd
--- /dev/null
@@ -0,0 +1,33 @@
+.TH fll_program_standard_setdown "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_program_standard_setdown
+.SH SYNOPSIS
+.nf
+.B #include <program.h>
+.sp
+\fBf_status_t fll_program_standard_setdown\fP(
+    \fBf_signal_t *const \fP\fIsignal\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This provides a standard program setdown operations used by FLL programs.
+.PP
+Closes the signal handler.
+.SH PARAMETERS
+.TP
+.B signal
+The signal structure.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_signal_close().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_program/data/documentation/man/man3/fll_program_standard_setup.3 b/level_2/fll_program/data/documentation/man/man3/fll_program_standard_setup.3
new file mode 100644 (file)
index 0000000..3e057b5
--- /dev/null
@@ -0,0 +1,35 @@
+.TH fll_program_standard_setup "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_program_standard_setup
+.SH SYNOPSIS
+.nf
+.B #include <program.h>
+.sp
+\fBf_status_t fll_program_standard_setup\fP(
+    \fBf_signal_t *const \fP\fIsignal\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+This provides a standard program setup operations used by FLL programs.
+.PP
+Handle signals so that program can cleanly exit, deallocating as appropriate.
+.SH PARAMETERS
+.TP
+.B signal
+The signal structure.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_signal_mask().
+.br
+Errors (with error bit) from: f_signal_open().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_program/data/documentation/man/man3/fll_program_standard_signal_received.3 b/level_2/fll_program/data/documentation/man/man3/fll_program_standard_signal_received.3
new file mode 100644 (file)
index 0000000..3109e9b
--- /dev/null
@@ -0,0 +1,31 @@
+.TH fll_program_standard_signal_received "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_program_standard_signal_received
+.SH SYNOPSIS
+.nf
+.B #include <program.h>
+.sp
+\fBf_status_t fll_program_standard_signal_received\fP(
+    \fBfll_program_data_t *const \fP\fImain\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Check to see if a process signal is received.
+.PP
+Only signals that are blocked via main.signal will be received.
+.PP
+If no signals are blocked, then this always returns F_false.
+.SH PARAMETERS
+.TP
+.B main
+The main program data. The main->signal must be used to designate blocked signals.
+
+.SH RETURN VALUE
+.PP
+A positive number representing a valid signal on signal received. 0 on no signal received or when main is NULL.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
diff --git a/level_2/fll_program/data/documentation/man/man3/fll_program_standard_signal_state.3 b/level_2/fll_program/data/documentation/man/man3/fll_program_standard_signal_state.3
new file mode 100644 (file)
index 0000000..fa04528
--- /dev/null
@@ -0,0 +1,40 @@
+.TH fll_program_standard_signal_state "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_program_standard_signal_state
+.SH SYNOPSIS
+.nf
+.B #include <program.h>
+.sp
+\fBf_status_t fll_program_standard_signal_state\fP(
+    \fBvoid *const \fP\fIstate\fP,
+    \fBvoid *const \fP\fIinternal\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Standardized callback for checking for interrupts via the f_state_t interrupt callback.
+.PP
+F_signal_termination
+.PP
+These signals may not be checked if they are not also blocked via the fll_program_data_t.signals variable.
+.PP
+When one of the above signals is both blocked and received, then this calls fll_program_standard_signal_received().
+.SH PARAMETERS
+.TP
+.B state
+The state data. This must be of type (f_state_t *).
+
+.TP
+.B internal
+Not used.
+
+.SH RETURN VALUE
+.PP
+\fBF_interrupt_not\fP if not interrupted.
+.br
+\fBF_interrupt\fP (with error bit) if interrupted.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.
index c6653172ef1e71eb1aff738b1cbad4300feeacd6..4f130804d83cb5bf412c3e349a4ac790b2b825ca 100644 (file)
@@ -1,2 +1 @@
 # fss-0000
-
index f1bac03ee925cae6db5576bcd106287ed6310f0d..d7c6e5117e28ae4582908ea6225816ee9ac12ea1 100644 (file)
@@ -36,6 +36,8 @@ build_sources_library status_string.c
 
 build_sources_headers status_string.h
 
+build_sources_documentation man
+
 build_script yes
 build_shared yes
 build_static no
diff --git a/level_2/fll_status_string/data/documentation/man/man3/fll_status_string_from.3 b/level_2/fll_status_string/data/documentation/man/man3/fll_status_string_from.3
new file mode 100644 (file)
index 0000000..6e56e5a
--- /dev/null
@@ -0,0 +1,44 @@
+.TH fll_status_string_from "3" "July 2023" "FLL - Featureless Linux Library 0.6.6" "Library Functions"
+.SH "NAME"
+fll_status_string_from
+.SH SYNOPSIS
+.nf
+.B #include <status_string.h>
+.sp
+\fBf_status_t fll_status_string_from\fP(
+    \fBconst f_string_static_t \fP\fIname\fP,
+    \fBf_status_t *const       \fP\fIcode\fP
+);
+.fi
+.SH DESCRIPTION
+.PP
+Provides status code functions, such as those that translate status codes into strings. Convert status codes from their string equivalents to a status code.
+.PP
+Error, warning, and signal flags will not be assigned to the error.
+.PP
+This process the string until either a match or NULL is reached.
+.SH PARAMETERS
+.TP
+.B name
+The status name to process.
+
+.TP
+.B code
+The status code a matched string represents.
+
+.SH RETURN VALUE
+.PP
+\fBF_none\fP on success.
+.br
+\fBF_data_not\fP if string is empty.
+.br
+\fBF_data\fP (with error bit) if not found.
+.br
+\fBF_parameter\fP (with error bit) if a parameter is invalid.
+.br
+Errors (with error bit) from: f_conversion_character_is_decimal().
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2007-2023 Kevin Day, GNU LGPL Version 2.1 or later.