build_sources_library environment.c
build_sources_library execute.c
build_sources_library file.c private-file.c file/common.c file/stream.c
-build_sources_library fss.c fss/common.c fss/item.c fss/named.c fss/nest.c fss/quote.c fss/set.c fss/set_quote.c fss/simple_packet.c
+build_sources_library fss.c fss/common.c fss/item.c fss/named.c fss/nest.c fss/payload.c fss/quote.c fss/set.c fss/set_quote.c fss/simple_packet.c
build_sources_library iki.c iki/common.c iki/data.c private-iki.c iki/private-data.c
build_sources_library limit.c limit/set.c limit/value.c
build_sources_library memory.c memory/array.c memory/arrays.c
build_sources_headers environment.h environment/common.h
build_sources_headers execute.h execute/common.h
build_sources_headers file.h file/common.h file/stream.h
-build_sources_headers fss.h fss/common.h fss/item.h fss/named.h fss/nest.h fss/quote.h fss/set.h fss/set_quote.h fss/simple_packet.h
+build_sources_headers fss.h fss/common.h fss/item.h fss/named.h fss/nest.h fss/payload.h fss/quote.h fss/set.h fss/set_quote.h fss/simple_packet.h
build_sources_headers iki.h iki/common.h iki/data.h
build_sources_headers limit.h limit/set.h limit/value.h
build_sources_headers memory.h memory/array.h memory/arrays.h memory/common.h
build_sources_library conversion.c private-conversion.c conversion/common.c
build_sources_library directory.c private-directory.c
build_sources_library environment.c
-build_sources_library private-fss.c fss/basic.c fss/basic_list.c fss/embedded_list.c fss/extended.c fss/extended_list.c
+build_sources_library private-fss.c fss/basic.c fss/basic_list.c fss/embedded_list.c fss/extended.c fss/extended_list.c fss/payload.c
build_sources_library iki.c
build_sources_library path.c
build_sources_library print.c private-print.c print/common.c
build_sources_headers directory.h directory/common.h
build_sources_headers environment.h
build_sources_headers execute.h execute/common.h
-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_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_headers iki.h
build_sources_headers path.h
build_sources_headers print.h print/common.h
build_sources_library level_0/environment.c
build_sources_library level_0/execute.c
build_sources_library level_0/file.c level_0/private-file.c level_0/file/common.c level_0/file/stream.c
-build_sources_library level_0/fss.c level_0/fss/common.c level_0/fss/item.c level_0/fss/named.c level_0/fss/nest.c level_0/fss/quote.c level_0/fss/set.c level_0/fss/set_quote.c level_0/fss/simple_packet.c
+build_sources_library level_0/fss.c level_0/fss/common.c level_0/fss/item.c level_0/fss/named.c level_0/fss/nest.c level_0/fss/payload.c level_0/fss/quote.c level_0/fss/set.c level_0/fss/set_quote.c level_0/fss/simple_packet.c
build_sources_library level_0/iki.c level_0/iki/common.c level_0/iki/data.c level_0/private-iki.c level_0/iki/private-data.c
build_sources_library level_0/limit.c level_0/limit/set.c level_0/limit/value.c
build_sources_library level_0/memory.c level_0/memory/array.c level_0/memory/arrays.c
build_sources_library level_1/conversion.c level_1/private-conversion.c level_1/conversion/common.c
build_sources_library level_1/directory.c level_1/private-directory.c
build_sources_library level_1/environment.c
-build_sources_library level_1/private-fss.c level_1/fss/basic.c level_1/fss/basic_list.c level_1/fss/embedded_list.c level_1/fss/extended.c level_1/fss/extended_list.c
+build_sources_library level_1/private-fss.c level_1/fss/basic.c level_1/fss/basic_list.c level_1/fss/embedded_list.c level_1/fss/extended.c level_1/fss/extended_list.c level_1/fss/payload.c
build_sources_library level_1/iki.c
build_sources_library level_1/path.c
build_sources_library level_1/print.c level_1/private-print.c level_1/print/common.c
build_sources_headers level_0/environment.h level_0/environment/common.h
build_sources_headers level_0/execute.h level_0/execute/common.h
build_sources_headers level_0/file.h level_0/file/common.h level_0/file/stream.h
-build_sources_headers level_0/fss.h level_0/fss/common.h level_0/fss/item.h level_0/fss/named.h level_0/fss/nest.h level_0/fss/quote.h level_0/fss/set.h level_0/fss/set_quote.h level_0/fss/simple_packet.h
+build_sources_headers level_0/fss.h level_0/fss/common.h level_0/fss/item.h level_0/fss/named.h level_0/fss/nest.h level_0/fss/payload.h level_0/fss/quote.h level_0/fss/set.h level_0/fss/set_quote.h level_0/fss/simple_packet.h
build_sources_headers level_0/iki.h level_0/iki/common.h level_0/iki/data.h
build_sources_headers level_0/limit.h level_0/limit/set.h level_0/limit/value.h
build_sources_headers level_0/memory.h level_0/memory/array.h level_0/memory/arrays.h level_0/memory/common.h
build_sources_headers level_1/directory.h level_1/directory/common.h
build_sources_headers level_1/environment.h
build_sources_headers level_1/execute.h level_1/execute/common.h
-build_sources_headers level_1/fss.h level_1/fss/basic.h level_1/fss/basic_list.h level_1/fss/embedded_list.h level_1/fss/extended.h level_1/fss/extended_list.h
+build_sources_headers level_1/fss.h level_1/fss/basic.h level_1/fss/basic_list.h level_1/fss/embedded_list.h level_1/fss/extended.h level_1/fss/extended_list.h level_1/fss/payload.h
build_sources_headers level_1/iki.h
build_sources_headers level_1/path.h
build_sources_headers level_1/print.h level_1/print/common.h
local verbose=
local verbose_common=
- local projects="f_type f_status f_memory f_type_array f_string f_utf f_account f_capability f_color f_compare f_console f_control_group f_conversion f_directory f_environment f_execute f_file f_fss f_iki f_limit f_network f_parse f_path f_pipe f_print f_rip f_serialize f_signal f_socket f_status_string f_thread f_time fl_control_group fl_conversion fl_directory fl_environment fl_execute fl_fss fl_iki fl_path fl_print fl_status_string fl_utf_file fll_control_group fll_error fll_execute fll_file fll_fss fll_fss_status_string fll_iki fll_print fll_program"
+ local projects="f_type f_status f_memory f_type_array f_string f_utf f_abstruse f_account f_capability f_color f_compare f_console f_control_group f_conversion f_directory f_environment f_execute f_file f_fss f_iki f_limit f_network f_parse f_path f_pipe f_print f_rip f_serialize f_signal f_socket f_status_string f_thread f_time fl_control_group fl_conversion fl_directory fl_environment fl_execute fl_fss fl_iki fl_path fl_print fl_status_string fl_utf_file fll_control_group fll_error fll_execute fll_file fll_fss fll_fss_status_string fll_iki fll_print fll_program"
local projects_no_tests="f_type"
local programs="fss_read"
// echo "#define _di_private_inline_f_print_to_error_" >> /tmp/sorted.txt
// echo "#define _di_private_inline_private_f_print_to_error_" >> /tmp/sorted.txt
+#define _di_f_abstruse_e_
+#define _di_f_abstruse_maps_delete_callback_
+#define _di_f_abstruse_maps_destroy_callback_
+#define _di_f_abstruse_mapss_delete_callback_
+#define _di_f_abstruse_mapss_destroy_callback_
+#define _di_f_abstruse_mapss_t_
+#define _di_f_abstruse_maps_t_
+#define _di_f_abstruse_map_t_
+#define _di_f_abstruses_delete_callback_
+#define _di_f_abstruses_destroy_callback_
+#define _di_f_abstrusess_delete_callback_
+#define _di_f_abstrusess_destroy_callback_
+#define _di_f_abstrusess_t_
+#define _di_f_abstruses_t_
+#define _di_f_abstruse_t_
+#define _di_f_abstruse_type_t_
#define _di_f_account_by_id_
#define _di_f_account_by_name_
//#define _di_f_account_d_
#define _di_f_directory_listings_t_
//#define _di_f_directory_listing_t_
//#define _di_f_directory_max_d_
-#define _di_f_directory_mode_
//#define _di_f_directory_open_
#define _di_f_directory_open_at_
//#define _di_f_directory_recurse_do_delete_
//#define _di_f_fss_is_zero_width_
#define _di_f_fss_item_delete_
#define _di_f_fss_item_destroy_
-#define _di_f_fss_items_adjust_
-#define _di_f_fss_items_decimate_by_
-#define _di_f_fss_items_decrease_by_
#define _di_f_fss_items_delete_callback_
#define _di_f_fss_items_destroy_callback_
-#define _di_f_fss_items_resize_
#define _di_f_fss_itemss_delete_callback_
#define _di_f_fss_itemss_destroy_callback_
#define _di_f_fss_itemss_t_
#define _di_f_fss_nestss_t_
#define _di_f_fss_nests_t_
#define _di_f_fss_nest_t_
+#define _di_f_fss_payload_comment_header_s_
+#define _di_f_fss_payload_object_header_s_
+#define _di_f_fss_payload_object_payload_s_
+#define _di_f_fss_payload_object_signature_s_
#define _di_f_fss_payload_s_
+#define _di_f_fss_payload_write_e_
//#define _di_f_fss_placeholder_s_
//#define _di_f_fss_quote_type_e_
#define _di_f_fss_s_
//#define _di_f_fss_seek_to_eol_
-#define _di_f_fss_set_adjust_
-#define _di_f_fss_set_decimate_by_
-#define _di_f_fss_set_decrease_by_
//#define _di_f_fss_set_delete_
#define _di_f_fss_set_destroy_
#define _di_f_fss_set_quote_delete_
#define _di_f_fss_simple_packet_destroy_
#define _di_f_fss_simple_packet_extract_
#define _di_f_fss_simple_packet_extract_range_
-#define _di_f_fss_simple_packet_ranges_append_
-#define _di_f_fss_simple_packet_ranges_append_all_
-#define _di_f_fss_simple_packet_rangess_append_
-#define _di_f_fss_simple_packet_rangess_append_all_
#define _di_f_fss_simple_packet_rangess_t_
#define _di_f_fss_simple_packet_ranges_t_
#define _di_f_fss_simple_packet_range_t_
-#define _di_f_fss_simple_packets_append_
-#define _di_f_fss_simple_packets_append_all_
#define _di_f_fss_simple_packets_delete_callback_
#define _di_f_fss_simple_packets_destroy_callback_
-#define _di_f_fss_simple_packetss_append_
-#define _di_f_fss_simple_packetss_append_all_
#define _di_f_fss_simple_packetss_delete_callback_
#define _di_f_fss_simple_packetss_destroy_callback_
#define _di_f_fss_simple_packetss_t_
#define _di_fl_fss_extended_list_object_write_
//#define _di_fl_fss_extended_object_read_
#define _di_fl_fss_extended_object_write_
+#define _di_fl_fss_payload_header_write_
//#define _di_fl_iki_read_
//#define _di_f_limit_process_
#define _di_f_limit_setss_delete_callback_
#define _di_f_string_triples_append_all_
#define _di_f_string_triples_delete_callback_
#define _di_f_string_triples_destroy_callback_
-#define _di_f_string_tripless_adjust_
#define _di_f_string_tripless_append_
#define _di_f_string_tripless_append_all_
#define _di_f_string_tripless_delete_callback_
#define _di_f_utf_string_append_
#define _di_f_utf_string_append_assure_
#define _di_f_utf_string_append_assure_nulless_
-#define _di_f_utf_string_append_mash_
#define _di_f_utf_string_append_nulless_
#define _di_f_utf_string_dynamic_append_
#define _di_f_utf_string_dynamic_append_assure_
#define _di_f_utf_string_dynamic_prepend_nulless_
#define _di_f_utf_string_dynamics_append_
#define _di_f_utf_string_dynamics_append_all_
+#define _di_f_utf_string_dynamics_delete_callback_
+#define _di_f_utf_string_dynamics_destroy_callback_
#define _di_f_utf_string_dynamic_seek_line_
#define _di_f_utf_string_dynamic_seek_line_to_
#define _di_f_utf_string_dynamic_seek_to_
-#define _di_f_utf_string_dynamics_delete_callback_
-#define _di_f_utf_string_dynamics_destroy_callback_
#define _di_f_utf_string_dynamicss_append_
#define _di_f_utf_string_dynamicss_append_all_
#define _di_f_utf_string_dynamicss_delete_callback_
build_sources_program fll/level_0/environment.c
build_sources_program fll/level_0/execute.c
build_sources_program fll/level_0/file.c fll/level_0/private-file.c fll/level_0/file/common.c fll/level_0/file/stream.c
-build_sources_program fll/level_0/fss.c fll/level_0/fss/common.c fll/level_0/fss/item.c fll/level_0/fss/named.c fll/level_0/fss/nest.c fll/level_0/fss/quote.c fll/level_0/fss/set.c fll/level_0/fss/set_quote.c fll/level_0/fss/simple_packet.c
+build_sources_program fll/level_0/fss.c fll/level_0/fss/common.c fll/level_0/fss/item.c fll/level_0/fss/named.c fll/level_0/fss/nest.c fll/level_0/fss/payload.c fll/level_0/fss/quote.c fll/level_0/fss/set.c fll/level_0/fss/set_quote.c fll/level_0/fss/simple_packet.c
build_sources_program fll/level_0/iki.c fll/level_0/private-iki.c fll/level_0/iki/common.c fll/level_0/iki/private-data.c fll/level_0/iki/data.c
build_sources_program fll/level_0/limit.c fll/level_0/limit/set.c fll/level_0/limit/value.c
build_sources_program fll/level_0/memory.c fll/level_0/memory/array.c fll/level_0/memory/arrays.c
build_sources_program fll/level_1/conversion.c fll/level_1/private-conversion.c fll/level_1/conversion/common.c
build_sources_program fll/level_1/directory.c fll/level_1/private-directory.c
build_sources_program fll/level_1/environment.c
-build_sources_program fll/level_1/private-fss.c fll/level_1/fss/basic.c fll/level_1/fss/basic_list.c fll/level_1/fss/embedded_list.c fll/level_1/fss/extended.c fll/level_1/fss/extended_list.c
+build_sources_program fll/level_1/private-fss.c fll/level_1/fss/basic.c fll/level_1/fss/basic_list.c fll/level_1/fss/embedded_list.c fll/level_1/fss/extended.c fll/level_1/fss/extended_list.c fll/level_1/fss/payload.c
build_sources_program fll/level_1/iki.c
build_sources_program fll/level_1/path.c
build_sources_program fll/level_1/print.c fll/level_1/private-print.c fll/level_1/print/common.c
#include <fll/level_0/fss/set.h>
#include <fll/level_0/fss/set_quote.h>
#include <fll/level_0/fss/simple_packet.h>
+#include <fll/level_0/fss/payload.h>
#ifdef __cplusplus
extern "C" {
* Codes for every known FSS standard.
*
* f_fss_*_e:
+ * - none: No type set.
* - basic: FSS-0000: Basic.
* - extended: FSS-0001: Extended.
* - basic_list: FSS-0002: Basic List.
* - basic_rule: FSS-000D: Basic Rule.
* - payload: FSS-000E: Payload.
* - simple_packet: FSS-000F: Simple Packet.
+ * - encrypted_simple_packet: FSS-0010: Encrypted Simple Packet.
*/
#ifndef _di_f_fss_e_
enum {
- f_fss_basic_e = 1,
+ f_fss_none_e = 0,
+ f_fss_basic_e,
f_fss_extended_e,
f_fss_basic_list_e,
f_fss_extended_list_e,
f_fss_basic_rule_e,
f_fss_payload_e,
f_fss_simple_packet_e,
+ f_fss_encrypted_simple_packet_e,
}; // enum
#endif // _di_f_fss_e_
*/
#ifndef _di_f_fss_complete_e_
enum {
- f_fss_complete_none_e = 1,
+ f_fss_complete_none_e = 0,
f_fss_complete_end_e,
f_fss_complete_full_e,
f_fss_complete_full_trim_e,
*/
#ifndef _di_f_fss_state_flag_e_
enum {
- f_fss_state_flag_none_e = 0,
+ f_fss_state_flag_none_e = 0x0,
f_fss_state_flag_utf_fail_on_valid_not_e = 0x1,
}; // enum
#endif // _di_f_fss_state_flag_e_
--- /dev/null
+#include "../fss.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _di_f_fss_payload_s_
+ #ifndef _di_f_fss_payload_comment_header_s_
+ const f_string_static_t f_fss_payload_comment_header_s = macro_f_string_static_t_initialize_1(F_fss_payload_comment_header_s, 0, F_fss_payload_comment_header_s_length);
+ #endif // _di_f_fss_payload_comment_header_s_
+
+ #ifndef _di_f_fss_payload_object_header_s_
+ const f_string_static_t f_fss_payload_object_header_s = macro_f_string_static_t_initialize_1(F_fss_payload_object_header_s, 0, F_fss_payload_object_header_s_length);
+ #endif // _di_f_fss_payload_object_header_s_
+
+ #ifndef _di_f_fss_payload_object_payload_s_
+ const f_string_static_t f_fss_payload_object_payload_s = macro_f_string_static_t_initialize_1(F_fss_payload_object_payload_s, 0, F_fss_payload_object_payload_s_length);
+ #endif // _di_f_fss_payload_object_payload_s_
+
+ #ifndef _di_f_fss_payload_object_signature_s_
+ const f_string_static_t f_fss_payload_object_signature_s = macro_f_string_static_t_initialize_1(F_fss_payload_object_signature_s, 0, F_fss_payload_object_signature_s_length);
+ #endif // _di_f_fss_payload_object_signature_s_
+#endif // _di_f_fss_payload_s_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
--- /dev/null
+/**
+ * FLL - Level 0
+ *
+ * Project: FSS
+ * API Version: 0.7
+ * Licenses: lgpl-2.1-or-later
+ *
+ * Defines set data to be used for/by project fss.
+ *
+ * This is auto-included by fss.h and should not need to be explicitly included.
+ */
+#ifndef _F_fss_payload_h
+#define _F_fss_payload_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Flags used by the FSS-000E (Simple Packet) write functions.
+ *
+ * Values of f_fss_payload_write_*_e:
+ * - none: No write flag set.
+ * - comment_header: Print the header comment for the Simple Packet, "# fss-000f\n".
+ * - header_content: Print the header content.
+ * - header_object: Print the header object, "header:\n".
+ * - payload_object: Print the payload object, "payload:\n".
+ * - signature_content: Print the signature content.
+ * - signature_object: Print the signature object, "signature:\n".
+ */
+#ifndef _di_f_fss_payload_write_e_
+ enum {
+ f_fss_payload_write_none_e = 0x0,
+ f_fss_payload_write_comment_header_e = 0x1,
+ f_fss_payload_write_header_content_e = 0x2,
+ f_fss_payload_write_header_object_e = 0x4,
+ f_fss_payload_write_payload_object_e = 0x8,
+ f_fss_payload_write_signature_content_e = 0x10,
+ f_fss_payload_write_signature_object_e = 0x20,
+ }; // enum
+#endif // _di_f_fss_payload_write_e_
+
+/**
+ * FSS Simple Packet strings.
+ *
+ * f_fss_payload_*_s:
+ * - header_comment: The header comment string for Simple Packet (FSS-000E).
+ * - header_object: The header object.
+ * - payload_object: The payload object.
+ * - signature_object: The signature object.
+ */
+#ifndef _di_f_fss_payload_s_
+ #define F_fss_payload_comment_header_s "# fss-000e"
+ #define F_fss_payload_object_header_s "header:\n"
+ #define F_fss_payload_object_payload_s "payload:\n"
+ #define F_fss_payload_object_signature_s "signature:\n"
+
+ #define F_fss_payload_comment_header_s_length 10
+ #define F_fss_payload_object_header_s_length 8
+ #define F_fss_payload_object_payload_s_length 9
+ #define F_fss_payload_object_signature_s_length 11
+
+ #ifndef _di_f_fss_payload_comment_header_s_
+ extern const f_string_static_t f_fss_payload_comment_header_s;
+ #endif // _di_f_fss_payload_comment_header_s_
+
+ #ifndef _di_f_fss_payload_object_header_s_
+ extern const f_string_static_t f_fss_payload_object_header_s;
+ #endif // _di_f_fss_payload_object_header_s_
+
+ #ifndef _di_f_fss_payload_object_payload_s_
+ extern const f_string_static_t f_fss_payload_object_payload_s;
+ #endif // _di_f_fss_payload_object_payload_s_
+
+ #ifndef _di_f_fss_payload_object_signature_s_
+ extern const f_string_static_t f_fss_payload_object_signature_s;
+ #endif // _di_f_fss_payload_object_signature_s_
+#endif // _di_f_fss_payload_s_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // _F_fss_payload_h
build_libraries -lc
build_libraries-individual -lf_memory -lf_string -lf_type_array -lf_utf
-build_sources_library fss.c fss/common.c fss/item.c fss/named.c fss/nest.c fss/quote.c fss/set.c fss/set_quote.c fss/simple_packet.c
+build_sources_library fss.c fss/common.c fss/item.c fss/named.c fss/nest.c fss/payload.c fss/quote.c fss/set.c fss/set_quote.c fss/simple_packet.c
-build_sources_headers fss.h fss/common.h fss/item.h fss/named.h fss/nest.h fss/quote.h fss/set.h fss/set_quote.h fss/simple_packet.h
+build_sources_headers fss.h fss/common.h fss/item.h fss/named.h fss/nest.h fss/payload.h fss/quote.h fss/set.h fss/set_quote.h fss/simple_packet.h
build_script yes
build_shared yes
build_libraries -lc
build_libraries-individual -lf_memory -lf_string -lf_type_array -lf_utf
-build_sources_library fss.c fss/common.c fss/item.c fss/named.c fss/nest.c fss/quote.c fss/set.c fss/set_quote.c fss/simple_packet.c
+build_sources_library fss.c fss/common.c fss/item.c fss/named.c fss/nest.c fss/payload.c fss/quote.c fss/set.c fss/set_quote.c fss/simple_packet.c
build_sources_library ../../tests/unit/c/mock-fss.c
-build_sources_headers fss.h fss/common.h fss/item.h fss/named.h fss/nest.h fss/quote.h fss/set.h fss/set_quote.h fss/simple_packet.h
+build_sources_headers fss.h fss/common.h fss/item.h fss/named.h fss/nest.h fss/payload.h fss/quote.h fss/set.h fss/set_quote.h fss/simple_packet.h
build_script yes
build_shared yes
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
+ * Must not be NULL.
+ *
* This alters state.status:
* F_fss_found_content on success and content was found (start location is at end of content).
* F_fss_found_content_not on success and no content was found (start location is after character designating this is not a content).
* When state.interrupt() returns, only F_interrupt and F_interrupt_not are processed.
* Error bit designates an error but must be passed along with F_interrupt.
*
+ * Must not be NULL.
+ *
* This alters state.status:
* F_okay on success.
* F_okay_eos on success after reaching the end of the buffer.
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
+ * Must not be NULL.
+ *
* This alters state.status:
* F_fss_found_object on success and object was found (start location is at end of object).
* F_fss_found_object_content_not on success but object ended at the line so there can be no content.
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
+ * Must not be NULL.
+ *
* This alters state.status:
* F_okay on success.
* F_okay_eos on success after reaching the end of the buffer.
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
+ * Must not be NULL.
+ *
* This alters state.status:
* F_fss_found_content on success and content was found (start location is at end of content).
* F_fss_found_content_not on success and no content was found (start location is after character designating this is not a content).
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
+ * Must not be NULL.
+ *
* This alters state.status:
* F_okay on success.
* F_okay_eol on success after reaching the end of the line.
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
+ * Must not be NULL.
+ *
* This alters state.status:
* F_fss_found_object on success and object was found (start location is at end of object).
* F_fss_found_object_not on success and no object was found (start location is after character designating this is not an object).
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
+ * Must not be NULL.
+ *
* This alters state.status:
* F_okay on success.
* F_okay_eos on success after reaching the end of the buffer.
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
+ * Must not be NULL.
+ *
* This alters state.status:
* F_fss_found_content on success and content was found (start location is at end of content).
* F_fss_found_content_not on success and no content was found (start location is after character designating this is not a content).
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
+ * Must not be NULL.
+ *
* This alters state.status:
* F_okay on success.
* F_okay_eos on success after reaching the end of the buffer.
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
+ * Must not be NULL.
+ *
* This alters state.status:
* F_fss_found_object on success and object was found (start location is at end of object).
* F_fss_found_object_not on success and no object was found (start location is after character designating this is not an object).
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
+ * Must not be NULL.
+ *
* This alters state.status:
* F_okay on success.
* F_okay_eos on success after reaching the end of the buffer.
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
+ * Must not be NULL.
+ *
* This alters state.status:
* F_fss_found_content on success and content was found (start location is at end of content).
* F_fss_found_content_not on success and no content was found (start location is after character designating this is not a content).
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
+ * Must not be NULL.
+ *
* This alters state.status:
* F_okay on success.
* F_okay_eos on success after reaching the end of the buffer.
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
+ * Must not be NULL.
+ *
* This alters state.status:
* F_fss_found_object on success and object was found (start location is at end of object).
* F_fss_found_object_content_not on success but object ended at the line so there can be no content.
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
+ * Must not be NULL.
+ *
* This alters state.status:
* F_okay on success.
* F_okay_eos on success after reaching the end of the buffer.
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
+ * Must not be NULL.
+ *
* This alters state.status:
* F_fss_found_content on success and content was found (start location is at end of content).
* F_fss_found_content_not on success and no content was found (start location is after character designating this is not a content).
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
+ * Must not be NULL.
+ *
* This alters state.status:
* F_okay on success.
* F_okay_eos on success after reaching the end of the buffer.
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
+ * Must not be NULL.
+ *
* This alters state.status:
* F_fss_found_object on success and object was found (start location is at end of object).
* F_fss_found_object_not on success and no object was found (start location is after character designating this is not an object).
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
+ * Must not be NULL.
+ *
* This alters state.status:
* F_okay on success.
* F_okay_eos on success after reaching the end of the buffer.
--- /dev/null
+#include "payload.h"
+#include "../private-fss.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _di_fl_fss_payload_header_write_
+ void fl_fss_payload_header_write(const f_abstruse_maps_t headers, const f_abstruse_maps_t * const signatures, f_string_dynamic_t * const destination, f_state_t * const state) {
+ #ifndef _di_level_1_parameter_checking_
+ if (!state) return;
+
+ if (!destination) {
+ state->status = F_status_set_error(F_parameter);
+
+ return;
+ }
+ #endif // _di_level_1_parameter_checking_
+
+ if (state->code & f_fss_payload_write_comment_header_e) {
+ // @todo flag for writing "# fss-000c"
+ }
+
+ if (state->code & f_fss_payload_write_header_object_e) {
+ // @todo flag for writing "header:"
+ }
+
+/*
+ if (state->code & f_fss_payload_write_header_content_e) {
+ for (f_number_unsigned_t i = 0; i < headers.used ; ++i) {
+
+ switch () {
+ f_abstruse_none_e:
+ f_abstruse_void_e:
+ f_abstruse_voids_e:
+ f_abstruse_strings_e:
+ break;
+
+ f_abstruse_signed_e:
+ f_abstruse_unsigned_e:
+ // @todo
+ break;
+
+ f_abstruse_int8s_e:
+ f_abstruse_int16s_e:
+ f_abstruse_int32s_e:
+ f_abstruse_int64s_e:
+ f_abstruse_signeds_e:
+ // @todo
+ break;
+
+ f_abstruse_uint8s_e:
+ f_abstruse_uint16s_e:
+ f_abstruse_uint32s_e:
+ f_abstruse_uint64s_e:
+ f_abstruse_unsigneds_e:
+ // @todo
+ break;
+
+ f_abstruse_string_e:
+ f_abstruse_strings_e:
+ // @todo
+ break;
+
+ f_abstruse_dynamic_e:
+ f_abstruse_dynamics_e:
+ // @todo
+ break;
+
+ f_abstruse_map_e:
+ f_abstruse_maps_e:
+ // @todo
+ break;
+
+ f_abstruse_map_multi_e:
+ f_abstruse_map_multis_e:
+ // @todo
+ break;
+
+ f_abstruse_quantity_e:
+ f_abstruse_quantitys_e:
+ // @todo
+ break;
+
+ f_abstruse_range_e:
+ f_abstruse_ranges_e:
+ // @todo
+ break;
+
+ f_abstruse_triple_e:
+ f_abstruse_triples_e:
+ // @todo
+ break;
+ }
+ } // for
+ }
+
+ if (state->code & f_fss_payload_write_signature_object_e) {
+ // @todo flag for writing "signature:"
+ }
+
+ if ((state->code & f_fss_payload_write_signature_content_e) && !signatures) {
+ for (f_number_unsigned_t i = 0; i < signatures->used ; ++i) {
+
+ switch () {
+ f_abstruse_none_e:
+ f_abstruse_void_e:
+ f_abstruse_voids_e:
+ f_abstruse_strings_e:
+ break;
+
+ f_abstruse_signed_e:
+ f_abstruse_unsigned_e:
+ // @todo
+ break;
+
+ f_abstruse_int8s_e:
+ f_abstruse_int16s_e:
+ f_abstruse_int32s_e:
+ f_abstruse_int64s_e:
+ f_abstruse_signeds_e:
+ // @todo
+ break;
+
+ f_abstruse_uint8s_e:
+ f_abstruse_uint16s_e:
+ f_abstruse_uint32s_e:
+ f_abstruse_uint64s_e:
+ f_abstruse_unsigneds_e:
+ // @todo
+ break;
+
+ f_abstruse_string_e:
+ f_abstruse_strings_e:
+ // @todo
+ break;
+
+ f_abstruse_dynamic_e:
+ f_abstruse_dynamics_e:
+ // @todo
+ break;
+
+ f_abstruse_map_e:
+ f_abstruse_maps_e:
+ // @todo
+ break;
+
+ f_abstruse_map_multi_e:
+ f_abstruse_map_multis_e:
+ // @todo
+ break;
+
+ f_abstruse_quantity_e:
+ f_abstruse_quantitys_e:
+ // @todo
+ break;
+
+ f_abstruse_range_e:
+ f_abstruse_ranges_e:
+ // @todo
+ break;
+
+ f_abstruse_triple_e:
+ f_abstruse_triples_e:
+ // @todo
+ break;
+ }
+ } // for
+ }
+*/
+ if (state->code & f_fss_payload_write_payload_object_e) {
+ // @todo flag for writing "payload:"
+ }
+
+ state->status = F_okay;
+ }
+#endif // _di_fl_fss_payload_header_write_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
--- /dev/null
+/**
+ * FLL - Level 1
+ *
+ * Project: FSS
+ * API Version: 0.7
+ * Licenses: lgpl-2.1-or-later
+ *
+ * This is the fss-000e implementation.
+ */
+#ifndef _FL_fss_payload_h
+#define _FL_fss_payload_h
+
+// Libc includes.
+#include <ctype.h>
+#include <string.h>
+
+// FLL-0 includes.
+#include <fll/level_0/type.h>
+#include <fll/level_0/status.h>
+#include <fll/level_0/memory.h>
+#include <fll/level_0/string.h>
+#include <fll/level_0/utf.h>
+#include <fll/level_0/abstruse.h>
+#include <fll/level_0/fss.h>
+
+// FLL-1 includes.
+#include <fll/level_1/fss.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// @todo fl_fss_payload_header_read() to build an array of f_abstruse for the headers?
+
+/**
+ * Write standard header of the FSS-000E (Payload).
+ *
+ * This implementation does not handle the following f_abstruse_*_e:
+ * - none.
+ * - strings.
+ * - void.
+ * - voids.
+ *
+ * @param headers
+ * An abstruse map representing individual headers.
+ * Ultimately, all headers are cast to a string or a binary representation (depending on implementation).
+ * @param signatures
+ * (optional) An abstruse map representing individual signature headers.
+ * Ultimately, all headers are cast to a string or a binary representation (depending on implementation).
+ * Set to NULL to not use.
+ * @param destination
+ * The string in which the resulting header is appended to.
+ * Must not be NULL.
+ * @param state
+ * @todo update this as appropriate after implementing this function.
+ * 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.
+ *
+ * When state.interrupt() returns, only F_interrupt and F_interrupt_not are processed.
+ * Error bit designates an error but must be passed along with F_interrupt.
+ * All other statuses are ignored.
+ *
+ * Must not be NULL.
+ *
+ * This alters state.status:
+ * F_okay on success.
+ * F_okay_eos on success after reaching the end of the buffer.
+ * F_okay_stop on success after reaching the range stop.
+ * F_data_not if object is empty (object.used is 0).
+ * F_data_not_eos no data to write due start location being greater than or equal to buffer size.
+ * F_data_not_stop no data to write due start location being greater than stop location.
+ *
+ * F_interrupt (with error bit) if stopping due to an interrupt.
+ * F_okay_eol (with error bit) after reaching an EOL, which is not supported by the standard.
+ * F_parameter (with error bit) if a parameter is invalid.
+ *
+ * Errors (with error bit) from: f_memory_array_increase().
+ * Errors (with error bit) from: f_memory_array_increase_by().
+ *
+ * @see f_memory_array_increase()
+ * @see f_memory_array_increase_by()
+ */
+#ifndef _di_fl_fss_payload_header_write_
+ extern void fl_fss_payload_header_write(const f_abstruse_maps_t headers, const f_abstruse_maps_t * const signatures, f_string_dynamic_t * const destination, f_state_t * const state);
+#endif // _di_fl_fss_payload_header_write_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // _FL_fss_payload_h
f_memory
f_string
f_utf
+f_abstruse
f_file
f_fss
build_language c
build_libraries -lc
-build_libraries-individual -lf_file -lf_fss -lf_memory -lf_string -lf_type_array -lf_utf
+build_libraries-individual -lf_abstruse -lf_file -lf_fss -lf_memory -lf_string -lf_type_array -lf_utf
-build_sources_library private-fss.c fss/basic.c fss/basic_list.c fss/embedded_list.c fss/extended.c fss/extended_list.c
+build_sources_library private-fss.c fss/basic.c fss/basic_list.c fss/embedded_list.c fss/extended.c fss/extended_list.c fss/payload.c
-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_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_script yes
build_shared yes
f_type_array
f_string
f_utf
+f_abstruse
f_account
f_capability
f_color