]> Kevux Git Server - fll/commitdiff
Progress: Continue program related work, updating fss_write.
authorKevin Day <thekevinday@gmail.com>
Tue, 29 Nov 2022 03:38:03 +0000 (21:38 -0600)
committerKevin Day <thekevinday@gmail.com>
Tue, 29 Nov 2022 03:38:03 +0000 (21:38 -0600)
The work continues, focusing on preparing fss_write for handling all currently written fss_*_write programs.
This should also pave the way for supporting other fss-???? standards than are currently directly represented.

The individual write programs will be linked to the same library fss_write is.
These individual write programs will act as if they were passed the "--as XXXX".
For example, fss_basic_list would operate the same as "fss_write -a fss-0002".

Some of the programs may have vastly different functionality than others.
In any case that code can be shared that code will be shared.

66 files changed:
level_3/fss_write/c/basic/basic.c [deleted file]
level_3/fss_write/c/basic/common.c
level_3/fss_write/c/basic/common.h
level_3/fss_write/c/basic/fss_write.c [new file with mode: 0644]
level_3/fss_write/c/basic/fss_write.h [moved from level_3/fss_write/c/basic/basic.h with 58% similarity]
level_3/fss_write/c/basic/main.c
level_3/fss_write/c/basic/print.c
level_3/fss_write/c/basic/private-common.c
level_3/fss_write/c/basic/private-print.c
level_3/fss_write/c/basic/private-write.c
level_3/fss_write/c/basic_list/basic_list.c [deleted file]
level_3/fss_write/c/basic_list/common.c
level_3/fss_write/c/basic_list/common.h
level_3/fss_write/c/basic_list/fss_write.c [new file with mode: 0644]
level_3/fss_write/c/basic_list/fss_write.h [moved from level_3/fss_write/c/basic_list/basic_list.h with 58% similarity]
level_3/fss_write/c/basic_list/main.c
level_3/fss_write/c/basic_list/print.c
level_3/fss_write/c/basic_list/private-common.c
level_3/fss_write/c/basic_list/private-print.c
level_3/fss_write/c/basic_list/private-write.c
level_3/fss_write/c/embedded_list/common.c
level_3/fss_write/c/embedded_list/common.h
level_3/fss_write/c/embedded_list/embedded_list.c [deleted file]
level_3/fss_write/c/embedded_list/fss_write.c [new file with mode: 0644]
level_3/fss_write/c/embedded_list/fss_write.h [moved from level_3/fss_write/c/embedded_list/embedded_list.h with 57% similarity]
level_3/fss_write/c/embedded_list/main.c
level_3/fss_write/c/embedded_list/print.c
level_3/fss_write/c/embedded_list/private-common.c
level_3/fss_write/c/embedded_list/private-print.c
level_3/fss_write/c/embedded_list/private-write.c
level_3/fss_write/c/extended/common.c
level_3/fss_write/c/extended/common.h
level_3/fss_write/c/extended/extended.c [deleted file]
level_3/fss_write/c/extended/fss_write.c [new file with mode: 0644]
level_3/fss_write/c/extended/fss_write.h [moved from level_3/fss_write/c/extended/extended.h with 58% similarity]
level_3/fss_write/c/extended/main.c
level_3/fss_write/c/extended/print.c
level_3/fss_write/c/extended/private-common.c
level_3/fss_write/c/extended/private-print.c
level_3/fss_write/c/extended/private-write.c
level_3/fss_write/c/extended_list/common.c
level_3/fss_write/c/extended_list/common.h
level_3/fss_write/c/extended_list/extended_list.c [deleted file]
level_3/fss_write/c/extended_list/fss_write.c [new file with mode: 0644]
level_3/fss_write/c/extended_list/fss_write.h [moved from level_3/fss_write/c/extended_list/extended_list.h with 55% similarity]
level_3/fss_write/c/extended_list/main.c
level_3/fss_write/c/extended_list/print.c
level_3/fss_write/c/extended_list/private-common.c
level_3/fss_write/c/extended_list/private-print.c
level_3/fss_write/c/extended_list/private-write.c
level_3/fss_write/c/main/common.h
level_3/fss_write/c/main/fss_write.c
level_3/fss_write/c/main/fss_write.h
level_3/fss_write/c/main/main.c
level_3/fss_write/c/main/main.h [new file with mode: 0644]
level_3/fss_write/c/main/print.c
level_3/fss_write/c/payload/common.c
level_3/fss_write/c/payload/common.h
level_3/fss_write/c/payload/fss_write.c [moved from level_3/fss_write/c/payload/payload.c with 95% similarity]
level_3/fss_write/c/payload/fss_write.h [moved from level_3/fss_write/c/payload/payload.h with 86% similarity]
level_3/fss_write/c/payload/main.c
level_3/fss_write/c/payload/print.c
level_3/fss_write/c/payload/private-common.c
level_3/fss_write/c/payload/private-print.c
level_3/fss_write/c/payload/private-write.c
level_3/fss_write/data/build/settings

diff --git a/level_3/fss_write/c/basic/basic.c b/level_3/fss_write/c/basic/basic.c
deleted file mode 100644 (file)
index 4fd48b9..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#include "fss_write_basic.h"
-#include "private-common.h"
-#include "private-basic.h"
-#include "../main/fss_write.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _di_fss_write_basic_process_help_
-  void fss_write_basic_process_help(fll_program_data_t * const main, fss_write_setting_t * const setting) {
-
-    fss_write_basic_print_help(main, setting);
-  }
-#endif // _di_fss_write_basic_process_help_
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
index 3b1ba69..f6993c7 100644 (file)
@@ -1,4 +1,4 @@
-#include "basic.h"
+#include "fss_write.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -6,6 +6,10 @@ extern "C" {
 
 #ifndef _di_fss_write_basic_strings_
   const f_string_static_t fss_write_basic_standard_s = macro_f_string_static_t_initialize(FSS_WRITE_basic_standard_s, 0, FSS_WRITE_basic_standard_s_length);
+
+  const f_string_static_t fss_write_format_code_short_0000_s = macro_f_string_static_t_initialize(FSS_WRITE_format_code_short_0000_s, 0, FSS_WRITE_format_code_short_0000_s_length);
+  const f_string_static_t fss_write_format_code_long_0000_s = macro_f_string_static_t_initialize(FSS_WRITE_format_code_long_0000_s, 0, FSS_WRITE_format_code_long_0000_s_length);
+  const f_string_static_t fss_write_format_code_human_0000_s = macro_f_string_static_t_initialize(FSS_WRITE_format_code_human_0000_s, 0, FSS_WRITE_format_code_human_0000_s_length);
 #endif // _di_fss_write_basic_strings_
 
 #ifdef __cplusplus
index e2f9e85..de6135e 100644 (file)
@@ -22,9 +22,21 @@ extern "C" {
 #ifndef _di_fss_write_basic_strings_
   #define FSS_WRITE_basic_standard_s "FSS-0000 (Basic)"
 
+  #define FSS_WRITE_format_code_short_0000_s "0000"
+  #define FSS_WRITE_format_code_long_0000_s  "fss-0000"
+  #define FSS_WRITE_format_code_human_0000_s "basic"
+
   #define FSS_WRITE_basic_standard_s_length 16
 
+  #define FSS_WRITE_format_code_short_0000_s_length 4
+  #define FSS_WRITE_format_code_long_0000_s_length  8
+  #define FSS_WRITE_format_code_human_0000_s_length 5
+
   extern const f_string_static_t fss_write_basic_standard_s;
+
+  extern const f_string_static_t fss_write_format_code_short_0000_s;
+  extern const f_string_static_t fss_write_format_code_long_0000_s;
+  extern const f_string_static_t fss_write_format_code_human_0000_s;
 #endif // _di_fss_write_basic_strings_
 
 #ifdef __cplusplus
diff --git a/level_3/fss_write/c/basic/fss_write.c b/level_3/fss_write/c/basic/fss_write.c
new file mode 100644 (file)
index 0000000..9788cf0
--- /dev/null
@@ -0,0 +1,33 @@
+#include "fss_write.h"
+#include "private-common.h"
+#include "private-write.h"
+#include "../main/fss_write.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _di_fss_write_basic_process_help_
+  void fss_write_basic_process_help(fll_program_data_t * const main, void * const setting) {
+
+    fss_write_basic_print_help((fss_write_setting_t *) setting, main->message);
+  }
+#endif // _di_fss_write_basic_process_help_
+
+#ifndef _di_fss_write_basic_process_normal_
+  void fss_write_basic_process_normal(fll_program_data_t * const main, void * const setting) {
+
+    // @todo
+  }
+#endif // _di_fss_write_basic_process_normal_
+
+#ifndef _di_fss_write_basic_process_pipe_
+  void fss_write_basic_process_pipe(fll_program_data_t * const main, void * const setting) {
+
+    // @todo
+  }
+#endif // _di_fss_write_basic_process_pipe_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
similarity index 58%
rename from level_3/fss_write/c/basic/basic.h
rename to level_3/fss_write/c/basic/fss_write.h
index a431e08..b5a7bba 100644 (file)
@@ -26,6 +26,7 @@
 #include <fll/level_0/console.h>
 #include <fll/level_0/conversion.h>
 #include <fll/level_0/file.h>
+#include <fll/level_0/fss.h>
 #include <fll/level_0/pipe.h>
 #include <fll/level_0/print.h>
 #include <fll/level_0/signal.h>
@@ -59,20 +60,57 @@ extern "C" {
  *   The main program data.
  * @param setting
  *   The main program settings.
+ *   Must be of type (fss_write_setting_t *).
+ *
+ *   This does not alter setting.status.
+ *
+ * @return
+ *   F_none on success.
+ *   F_output_not on success, but no printing is performed.
+ */
+#ifndef _di_fss_write_basic_process_help_
+  extern void fss_write_basic_process_help(fll_program_data_t * const main, void * const setting);
+#endif // _di_fss_write_basic_process_help_
+
+/**
+ * Process normally, writing to the output.
+ *
+ * @param main
+ *   The main program data.
+ * @param setting
+ *   The main program settings.
+ *   Must be of type (fss_write_setting_t *).
  *
  *   This alters setting.status:
  *     F_none on success.
  *     F_interrupt on (exit) signal received.
  *
  *     F_parameter (with error bit) if main is NULL or setting is NULL.
+ */
+#ifndef _di_fss_write_basic_process_normal_
+  extern void fss_write_basic_process_normal(fll_program_data_t * const main, void * const setting);
+#endif // _di_fss_write_basic_process_normal_
+
+/**
+ * Process the pipe, reading from the pipe and writing to the output.
  *
- * @return
- *   F_none on success.
- *   F_failure (with error bit) for any other failure.
+ * @param main
+ *   The main program data.
+ * @param setting
+ *   The main program settings.
+ *   Must be of type (fss_write_setting_t *).
+ *
+ *   This alters setting.status:
+ *     F_none on success.
+ *     F_data_not on success but pipe contained no relevant data.
+ *     F_basic on success and the basic has been printed.
+ *     F_interrupt on (exit) signal received.
+ *
+ *     F_parameter (with error bit) if main is NULL or setting is NULL.
  */
-#ifndef _di_fss_write_basic_process_help_
-  extern void fss_write_basic_process_help(fll_program_data_t * const main, fss_write_setting_t * const setting);
-#endif // _di_fss_write_basic_process_help_
+#ifndef _di_fss_write_basic_process_pipe_
+  extern void fss_write_basic_process_pipe(fll_program_data_t * const main, void * const setting);
+#endif // _di_fss_write_basic_process_pipe_
 
 #ifdef __cplusplus
 } // extern "C"
index b982c3c..8b9a9e8 100644 (file)
@@ -1,11 +1,11 @@
-#include "basic.h"
+#include "fss_write.h"
 
 int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   fll_program_data_t data = fll_program_data_t_initialize;
   fss_write_setting_t setting = fss_write_setting_t_initialize;
   setting.state.data = (void *) &data;
-  setting.process_help = &fss_write_basic_print_help;
+  setting.process_help = &fss_write_basic_process_help;
   setting.process_pipe = &fss_write_basic_process_pipe;
   setting.process_normal = &fss_write_basic_process_normal;
 
index 378d12a..bc34f6b 100644 (file)
@@ -1,4 +1,4 @@
-#include "basic.h"
+#include "fss_write.h"
 #include "private-common.h"
 
 #ifdef __cplusplus
@@ -16,6 +16,8 @@ extern "C" {
 
     fss_write_print_help(setting, print);
 
+    f_print_dynamic_raw(f_string_eol_s, print.to);
+
     fll_program_print_help_usage(print, fss_write_program_name_s, f_string_empty_s);
 
     // @todo
index a06220a..8ae3dfd 100644 (file)
@@ -1,4 +1,4 @@
-#include "basic.h"
+#include "fss_write.h"
 #include "private-common.h"
 
 #ifdef __cplusplus
index 4f1da6c..0f7be74 100644 (file)
@@ -1,4 +1,4 @@
-#include "basic.h"
+#include "fss_write.h"
 #include "private-common.h"
 #include "private-print.h"
 
index 7197a20..e3c2ad5 100644 (file)
@@ -1,4 +1,4 @@
-#include "basic.h"
+#include "fss_write.h"
 #include "private-common.h"
 #include "private-write.h"
 
diff --git a/level_3/fss_write/c/basic_list/basic_list.c b/level_3/fss_write/c/basic_list/basic_list.c
deleted file mode 100644 (file)
index 147d352..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#include "fss_write_basic_list.h"
-#include "private-common.h"
-#include "private-basic_list.h"
-#include "../main/fss_write.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _di_fss_write_basic_list_process_help_
-  void fss_write_basic_list_process_help(fll_program_data_t * const main, fss_write_setting_t * const setting) {
-
-    fss_write_basic_list_print_help(main, setting);
-  }
-#endif // _di_fss_write_basic_list_process_help_
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
index ee13670..477f698 100644 (file)
@@ -1,4 +1,4 @@
-#include "basic_list.h"
+#include "fss_write.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -6,6 +6,10 @@ extern "C" {
 
 #ifndef _di_fss_write_basic_list_strings_
   const f_string_static_t fss_write_basic_list_standard_s = macro_f_string_static_t_initialize(FSS_WRITE_basic_list_standard_s, 0, FSS_WRITE_basic_list_standard_s_length);
+
+  const f_string_static_t fss_write_format_code_short_0002_s = macro_f_string_static_t_initialize(FSS_WRITE_format_code_short_0002_s, 0, FSS_WRITE_format_code_short_0002_s_length);
+  const f_string_static_t fss_write_format_code_long_0002_s = macro_f_string_static_t_initialize(FSS_WRITE_format_code_long_0002_s, 0, FSS_WRITE_format_code_long_0002_s_length);
+  const f_string_static_t fss_write_format_code_human_0002_s = macro_f_string_static_t_initialize(FSS_WRITE_format_code_human_0002_s, 0, FSS_WRITE_format_code_human_0002_s_length);
 #endif // _di_fss_write_basic_list_strings_
 
 #ifdef __cplusplus
index c0beb2a..f0b39cd 100644 (file)
@@ -22,9 +22,21 @@ extern "C" {
 #ifndef _di_fss_write_basic_list_strings_
   #define FSS_WRITE_basic_list_standard_s "FSS-0002 (Basic List)"
 
+  #define FSS_WRITE_format_code_short_0002_s "0002"
+  #define FSS_WRITE_format_code_long_0002_s  "fss-0002"
+  #define FSS_WRITE_format_code_human_0002_s "basic list"
+
   #define FSS_WRITE_basic_list_standard_s_length 21
 
+  #define FSS_WRITE_format_code_short_0002_s_length 4
+  #define FSS_WRITE_format_code_long_0002_s_length  8
+  #define FSS_WRITE_format_code_human_0002_s_length 10
+
   extern const f_string_static_t fss_write_basic_list_standard_s;
+
+  extern const f_string_static_t fss_write_format_code_short_0002_s;
+  extern const f_string_static_t fss_write_format_code_long_0002_s;
+  extern const f_string_static_t fss_write_format_code_human_0002_s;
 #endif // _di_fss_write_basic_list_strings_
 
 #ifdef __cplusplus
diff --git a/level_3/fss_write/c/basic_list/fss_write.c b/level_3/fss_write/c/basic_list/fss_write.c
new file mode 100644 (file)
index 0000000..ebc7a29
--- /dev/null
@@ -0,0 +1,33 @@
+#include "fss_write.h"
+#include "private-common.h"
+#include "private-write.h"
+#include "../main/fss_write.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _di_fss_write_basic_list_process_help_
+  void fss_write_basic_list_process_help(fll_program_data_t * const main, void * const setting) {
+
+    fss_write_basic_list_print_help((fss_write_setting_t *) setting, main->message);
+  }
+#endif // _di_fss_write_basic_list_process_help_
+
+#ifndef _di_fss_write_basic_list_process_normal_
+  void fss_write_basic_list_process_normal(fll_program_data_t * const main, void * const setting) {
+
+    // @todo
+  }
+#endif // _di_fss_write_basic_list_process_normal_
+
+#ifndef _di_fss_write_basic_list_process_pipe_
+  void fss_write_basic_list_process_pipe(fll_program_data_t * const main, void * const setting) {
+
+    // @todo
+  }
+#endif // _di_fss_write_basic_list_process_pipe_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
similarity index 58%
rename from level_3/fss_write/c/basic_list/basic_list.h
rename to level_3/fss_write/c/basic_list/fss_write.h
index 1206d46..a40a7e4 100644 (file)
@@ -26,6 +26,7 @@
 #include <fll/level_0/console.h>
 #include <fll/level_0/conversion.h>
 #include <fll/level_0/file.h>
+#include <fll/level_0/fss.h>
 #include <fll/level_0/pipe.h>
 #include <fll/level_0/print.h>
 #include <fll/level_0/signal.h>
@@ -59,20 +60,57 @@ extern "C" {
  *   The main program data.
  * @param setting
  *   The main program settings.
+ *   Must be of type (fss_write_setting_t *).
+ *
+ *   This does not alter setting.status.
+ *
+ * @return
+ *   F_none on success.
+ *   F_output_not on success, but no printing is performed.
+ */
+#ifndef _di_fss_write_basic_list_process_help_
+  extern void fss_write_basic_list_process_help(fll_program_data_t * const main, void * const setting);
+#endif // _di_fss_write_basic_list_process_help_
+
+/**
+ * Process normally, writing to the output.
+ *
+ * @param main
+ *   The main program data.
+ * @param setting
+ *   The main program settings.
+ *   Must be of type (fss_write_setting_t *).
  *
  *   This alters setting.status:
  *     F_none on success.
  *     F_interrupt on (exit) signal received.
  *
  *     F_parameter (with error bit) if main is NULL or setting is NULL.
+ */
+#ifndef _di_fss_write_basic_list_process_normal_
+  extern void fss_write_basic_list_process_normal(fll_program_data_t * const main, void * const setting);
+#endif // _di_fss_write_basic_list_process_normal_
+
+/**
+ * Process the pipe, reading from the pipe and writing to the output.
  *
- * @return
- *   F_none on success.
- *   F_failure (with error bit) for any other failure.
+ * @param main
+ *   The main program data.
+ * @param setting
+ *   The main program settings.
+ *   Must be of type (fss_write_setting_t *).
+ *
+ *   This alters setting.status:
+ *     F_none on success.
+ *     F_data_not on success but pipe contained no relevant data.
+ *     F_basic_list on success and the basic_list has been printed.
+ *     F_interrupt on (exit) signal received.
+ *
+ *     F_parameter (with error bit) if main is NULL or setting is NULL.
  */
-#ifndef _di_fss_write_basic_list_process_help_
-  extern void fss_write_basic_list_process_help(fll_program_data_t * const main, fss_write_setting_t * const setting);
-#endif // _di_fss_write_basic_list_process_help_
+#ifndef _di_fss_write_basic_list_process_pipe_
+  extern void fss_write_basic_list_process_pipe(fll_program_data_t * const main, void * const setting);
+#endif // _di_fss_write_basic_list_process_pipe_
 
 #ifdef __cplusplus
 } // extern "C"
index 212c2d2..2d03b16 100644 (file)
@@ -1,11 +1,11 @@
-#include "basic_list.h"
+#include "fss_write.h"
 
 int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   fll_program_data_t data = fll_program_data_t_initialize;
   fss_write_setting_t setting = fss_write_setting_t_initialize;
   setting.state.data = (void *) &data;
-  setting.process_help = &fss_write_basic_list_print_help;
+  setting.process_help = &fss_write_basic_list_process_help;
   setting.process_pipe = &fss_write_basic_list_process_pipe;
   setting.process_normal = &fss_write_basic_list_process_normal;
 
index 0b5dabf..51ac9d3 100644 (file)
@@ -1,4 +1,4 @@
-#include "basic_list.h"
+#include "fss_write.h"
 #include "private-common.h"
 
 #ifdef __cplusplus
@@ -16,6 +16,8 @@ extern "C" {
 
     fss_write_print_help(setting, print);
 
+    f_print_dynamic_raw(f_string_eol_s, print.to);
+
     fll_program_print_help_usage(print, fss_write_program_name_s, f_string_empty_s);
 
     // @todo
index 24b56de..8ae3dfd 100644 (file)
@@ -1,4 +1,4 @@
-#include "basic_list.h"
+#include "fss_write.h"
 #include "private-common.h"
 
 #ifdef __cplusplus
index 237b20a..0f7be74 100644 (file)
@@ -1,4 +1,4 @@
-#include "basic_list.h"
+#include "fss_write.h"
 #include "private-common.h"
 #include "private-print.h"
 
index 98c2396..e3c2ad5 100644 (file)
@@ -1,4 +1,4 @@
-#include "basic_list.h"
+#include "fss_write.h"
 #include "private-common.h"
 #include "private-write.h"
 
index ce3090a..54f60c1 100644 (file)
@@ -1,4 +1,4 @@
-#include "embedded_list.h"
+#include "fss_write.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -6,6 +6,10 @@ extern "C" {
 
 #ifndef _di_fss_write_embedded_list_strings_
   const f_string_static_t fss_write_embedded_list_standard_s = macro_f_string_static_t_initialize(FSS_WRITE_embedded_list_standard_s, 0, FSS_WRITE_embedded_list_standard_s_length);
+
+  const f_string_static_t fss_write_format_code_short_0008_s = macro_f_string_static_t_initialize(FSS_WRITE_format_code_short_0008_s, 0, FSS_WRITE_format_code_short_0008_s_length);
+  const f_string_static_t fss_write_format_code_long_0008_s = macro_f_string_static_t_initialize(FSS_WRITE_format_code_long_0008_s, 0, FSS_WRITE_format_code_long_0008_s_length);
+  const f_string_static_t fss_write_format_code_human_0008_s = macro_f_string_static_t_initialize(FSS_WRITE_format_code_human_0008_s, 0, FSS_WRITE_format_code_human_0008_s_length);
 #endif // _di_fss_write_embedded_list_strings_
 
 #ifdef __cplusplus
index 1a3c162..296934b 100644 (file)
@@ -25,6 +25,22 @@ extern "C" {
   #define FSS_WRITE_embedded_list_standard_s_length 24
 
   extern const f_string_static_t fss_write_embedded_list_standard_s;
+
+  #define FSS_WRITE_format_code_short_0008_s "0008"
+  #define FSS_WRITE_format_code_long_0008_s  "fss-0008"
+  #define FSS_WRITE_format_code_human_0008_s "basic"
+
+  #define FSS_WRITE_basic_standard_s_length 16
+
+  #define FSS_WRITE_format_code_short_0008_s_length 4
+  #define FSS_WRITE_format_code_long_0008_s_length  8
+  #define FSS_WRITE_format_code_human_0008_s_length 5
+
+  extern const f_string_static_t fss_write_basic_standard_s;
+
+  extern const f_string_static_t fss_write_format_code_short_0008_s;
+  extern const f_string_static_t fss_write_format_code_long_0008_s;
+  extern const f_string_static_t fss_write_format_code_human_0008_s;
 #endif // _di_fss_write_embedded_list_strings_
 
 #ifdef __cplusplus
diff --git a/level_3/fss_write/c/embedded_list/embedded_list.c b/level_3/fss_write/c/embedded_list/embedded_list.c
deleted file mode 100644 (file)
index 3456ed3..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#include "fss_write_embedded_list.h"
-#include "private-common.h"
-#include "private-embedded_list.h"
-#include "../main/fss_write.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _di_fss_write_embedded_list_process_help_
-  void fss_write_embedded_list_process_help(fll_program_data_t * const main, fss_write_setting_t * const setting) {
-
-    fss_write_embedded_list_print_help(main, setting);
-  }
-#endif // _di_fss_write_embedded_list_process_help_
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
diff --git a/level_3/fss_write/c/embedded_list/fss_write.c b/level_3/fss_write/c/embedded_list/fss_write.c
new file mode 100644 (file)
index 0000000..4ad0c7f
--- /dev/null
@@ -0,0 +1,33 @@
+#include "fss_write.h"
+#include "private-common.h"
+#include "private-write.h"
+#include "../main/fss_write.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _di_fss_write_embedded_list_process_help_
+  void fss_write_embedded_list_process_help(fll_program_data_t * const main, void * const setting) {
+
+    fss_write_embedded_list_print_help((fss_write_setting_t *) setting, main->message);
+  }
+#endif // _di_fss_write_embedded_list_process_help_
+
+#ifndef _di_fss_write_embedded_list_process_normal_
+  void fss_write_embedded_list_process_normal(fll_program_data_t * const main, void * const setting) {
+
+    // @todo
+  }
+#endif // _di_fss_write_embedded_list_process_normal_
+
+#ifndef _di_fss_write_embedded_list_process_pipe_
+  void fss_write_embedded_list_process_pipe(fll_program_data_t * const main, void * const setting) {
+
+    // @todo
+  }
+#endif // _di_fss_write_embedded_list_process_pipe_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
@@ -26,6 +26,7 @@
 #include <fll/level_0/console.h>
 #include <fll/level_0/conversion.h>
 #include <fll/level_0/file.h>
+#include <fll/level_0/fss.h>
 #include <fll/level_0/pipe.h>
 #include <fll/level_0/print.h>
 #include <fll/level_0/signal.h>
@@ -58,20 +59,57 @@ extern "C" {
  *   The main program data.
  * @param setting
  *   The main program settings.
+ *   Must be of type (fss_write_setting_t *).
+ *
+ *   This does not alter setting.status.
+ *
+ * @return
+ *   F_none on success.
+ *   F_output_not on success, but no printing is performed.
+ */
+#ifndef _di_fss_write_embedded_list_process_help_
+  extern void fss_write_embedded_list_process_help(fll_program_data_t * const main, void * const setting);
+#endif // _di_fss_write_embedded_list_process_help_
+
+/**
+ * Process normally, writing to the output.
+ *
+ * @param main
+ *   The main program data.
+ * @param setting
+ *   The main program settings.
+ *   Must be of type (fss_write_setting_t *).
  *
  *   This alters setting.status:
  *     F_none on success.
  *     F_interrupt on (exit) signal received.
  *
  *     F_parameter (with error bit) if main is NULL or setting is NULL.
+ */
+#ifndef _di_fss_write_embedded_list_process_normal_
+  extern void fss_write_embedded_list_process_normal(fll_program_data_t * const main, void * const setting);
+#endif // _di_fss_write_embedded_list_process_normal_
+
+/**
+ * Process the pipe, reading from the pipe and writing to the output.
  *
- * @return
- *   F_none on success.
- *   F_failure (with error bit) for any other failure.
+ * @param main
+ *   The main program data.
+ * @param setting
+ *   The main program settings.
+ *   Must be of type (fss_write_setting_t *).
+ *
+ *   This alters setting.status:
+ *     F_none on success.
+ *     F_data_not on success but pipe contained no relevant data.
+ *     F_embedded_list on success and the embedded_list has been printed.
+ *     F_interrupt on (exit) signal received.
+ *
+ *     F_parameter (with error bit) if main is NULL or setting is NULL.
  */
-#ifndef _di_fss_write_embedded_list_process_help_
-  extern void fss_write_embedded_list_process_help(fll_program_data_t * const main, fss_write_setting_t * const setting);
-#endif // _di_fss_write_embedded_list_process_help_
+#ifndef _di_fss_write_embedded_list_process_pipe_
+  extern void fss_write_embedded_list_process_pipe(fll_program_data_t * const main, void * const setting);
+#endif // _di_fss_write_embedded_list_process_pipe_
 
 #ifdef __cplusplus
 } // extern "C"
index fec94f5..bef1732 100644 (file)
@@ -1,11 +1,11 @@
-#include "embedded_list.h"
+#include "fss_write.h"
 
 int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   fll_program_data_t data = fll_program_data_t_initialize;
   fss_write_setting_t setting = fss_write_setting_t_initialize;
   setting.state.data = (void *) &data;
-  setting.process_help = &fss_write_embedded_list_print_help;
+  setting.process_help = &fss_write_embedded_list_process_help;
   setting.process_pipe = &fss_write_embedded_list_process_pipe;
   setting.process_normal = &fss_write_embedded_list_process_normal;
 
index 174016c..a1ee9f1 100644 (file)
@@ -1,4 +1,4 @@
-#include "embedded_list.h"
+#include "fss_write.h"
 #include "private-common.h"
 
 #ifdef __cplusplus
@@ -16,6 +16,8 @@ extern "C" {
 
     fss_write_print_help(setting, print);
 
+    f_print_dynamic_raw(f_string_eol_s, print.to);
+
     fll_program_print_help_usage(print, fss_write_program_name_s, f_string_empty_s);
 
     // @todo
index 59e28ca..8ae3dfd 100644 (file)
@@ -1,4 +1,4 @@
-#include "embedded_list.h"
+#include "fss_write.h"
 #include "private-common.h"
 
 #ifdef __cplusplus
index 0661540..0f7be74 100644 (file)
@@ -1,4 +1,4 @@
-#include "embedded_list.h"
+#include "fss_write.h"
 #include "private-common.h"
 #include "private-print.h"
 
index 543fd73..e3c2ad5 100644 (file)
@@ -1,4 +1,4 @@
-#include "embedded_list.h"
+#include "fss_write.h"
 #include "private-common.h"
 #include "private-write.h"
 
index 4d18b02..18ea2c1 100644 (file)
@@ -1,4 +1,4 @@
-#include "extended.h"
+#include "fss_write.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -6,6 +6,10 @@ extern "C" {
 
 #ifndef _di_fss_write_extended_strings_
   const f_string_static_t fss_write_extended_standard_s = macro_f_string_static_t_initialize(FSS_WRITE_extended_standard_s, 0, FSS_WRITE_extended_standard_s_length);
+
+  const f_string_static_t fss_write_format_code_short_0001_s = macro_f_string_static_t_initialize(FSS_WRITE_format_code_short_0001_s, 0, FSS_WRITE_format_code_short_0001_s_length);
+  const f_string_static_t fss_write_format_code_long_0001_s = macro_f_string_static_t_initialize(FSS_WRITE_format_code_long_0001_s, 0, FSS_WRITE_format_code_long_0001_s_length);
+  const f_string_static_t fss_write_format_code_human_0001_s = macro_f_string_static_t_initialize(FSS_WRITE_format_code_human_0001_s, 0, FSS_WRITE_format_code_human_0001_s_length);
 #endif // _di_fss_write_extended_strings_
 
 #ifdef __cplusplus
index 3e63318..4bafcbc 100644 (file)
@@ -22,9 +22,21 @@ extern "C" {
 #ifndef _di_fss_write_extended_strings_
   #define FSS_WRITE_extended_standard_s "FSS-0001 (Extended)"
 
+  #define FSS_WRITE_format_code_short_0001_s "0001"
+  #define FSS_WRITE_format_code_long_0001_s  "fss-0001"
+  #define FSS_WRITE_format_code_human_0001_s "extended"
+
   #define FSS_WRITE_extended_standard_s_length 19
 
+  #define FSS_WRITE_format_code_short_0001_s_length 4
+  #define FSS_WRITE_format_code_long_0001_s_length  8
+  #define FSS_WRITE_format_code_human_0001_s_length 8
+
   extern const f_string_static_t fss_write_extended_standard_s;
+
+  extern const f_string_static_t fss_write_format_code_short_0001_s;
+  extern const f_string_static_t fss_write_format_code_long_0001_s;
+  extern const f_string_static_t fss_write_format_code_human_0001_s;
 #endif // _di_fss_write_extended_strings_
 
 #ifdef __cplusplus
diff --git a/level_3/fss_write/c/extended/extended.c b/level_3/fss_write/c/extended/extended.c
deleted file mode 100644 (file)
index 7076971..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#include "fss_write_extended.h"
-#include "private-common.h"
-#include "private-extended.h"
-#include "../main/fss_write.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _di_fss_write_extended_process_help_
-  void fss_write_extended_process_help(fll_program_data_t * const main, fss_write_setting_t * const setting) {
-
-    fss_write_extended_print_help(main, setting);
-  }
-#endif // _di_fss_write_extended_process_help_
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
diff --git a/level_3/fss_write/c/extended/fss_write.c b/level_3/fss_write/c/extended/fss_write.c
new file mode 100644 (file)
index 0000000..e76f0f4
--- /dev/null
@@ -0,0 +1,33 @@
+#include "fss_write.h"
+#include "private-common.h"
+#include "private-write.h"
+#include "../main/fss_write.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _di_fss_write_extended_process_help_
+  void fss_write_extended_process_help(fll_program_data_t * const main, void * const setting) {
+
+    fss_write_extended_print_help((fss_write_setting_t *) setting, main->message);
+  }
+#endif // _di_fss_write_extended_process_help_
+
+#ifndef _di_fss_write_extended_process_normal_
+  void fss_write_extended_process_normal(fll_program_data_t * const main, void * const setting) {
+
+    // @todo
+  }
+#endif // _di_fss_write_extended_process_normal_
+
+#ifndef _di_fss_write_extended_process_pipe_
+  void fss_write_extended_process_pipe(fll_program_data_t * const main, void * const setting) {
+
+    // @todo
+  }
+#endif // _di_fss_write_extended_process_pipe_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
similarity index 58%
rename from level_3/fss_write/c/extended/extended.h
rename to level_3/fss_write/c/extended/fss_write.h
index dd0bf6e..608a8ac 100644 (file)
@@ -26,6 +26,7 @@
 #include <fll/level_0/console.h>
 #include <fll/level_0/conversion.h>
 #include <fll/level_0/file.h>
+#include <fll/level_0/fss.h>
 #include <fll/level_0/pipe.h>
 #include <fll/level_0/print.h>
 #include <fll/level_0/signal.h>
@@ -51,7 +52,6 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
-
 /**
  * Process help for FSS-0001 (Extended).
  *
@@ -59,20 +59,57 @@ extern "C" {
  *   The main program data.
  * @param setting
  *   The main program settings.
+ *   Must be of type (fss_write_setting_t *).
+ *
+ *   This does not alter setting.status.
+ *
+ * @return
+ *   F_none on success.
+ *   F_output_not on success, but no printing is performed.
+ */
+#ifndef _di_fss_write_extended_process_help_
+  extern void fss_write_extended_process_help(fll_program_data_t * const main, void * const setting);
+#endif // _di_fss_write_extended_process_help_
+
+/**
+ * Process normally, writing to the output.
+ *
+ * @param main
+ *   The main program data.
+ * @param setting
+ *   The main program settings.
+ *   Must be of type (fss_write_setting_t *).
  *
  *   This alters setting.status:
  *     F_none on success.
  *     F_interrupt on (exit) signal received.
  *
  *     F_parameter (with error bit) if main is NULL or setting is NULL.
+ */
+#ifndef _di_fss_write_extended_process_normal_
+  extern void fss_write_extended_process_normal(fll_program_data_t * const main, void * const setting);
+#endif // _di_fss_write_extended_process_normal_
+
+/**
+ * Process the pipe, reading from the pipe and writing to the output.
  *
- * @return
- *   F_none on success.
- *   F_failure (with error bit) for any other failure.
+ * @param main
+ *   The main program data.
+ * @param setting
+ *   The main program settings.
+ *   Must be of type (fss_write_setting_t *).
+ *
+ *   This alters setting.status:
+ *     F_none on success.
+ *     F_data_not on success but pipe contained no relevant data.
+ *     F_extended on success and the extended has been printed.
+ *     F_interrupt on (exit) signal received.
+ *
+ *     F_parameter (with error bit) if main is NULL or setting is NULL.
  */
-#ifndef _di_fss_write_extended_process_help_
-  extern void fss_write_extended_process_help(fll_program_data_t * const main, fss_write_setting_t * const setting);
-#endif // _di_fss_write_extended_process_help_
+#ifndef _di_fss_write_extended_process_pipe_
+  extern void fss_write_extended_process_pipe(fll_program_data_t * const main, void * const setting);
+#endif // _di_fss_write_extended_process_pipe_
 
 #ifdef __cplusplus
 } // extern "C"
index b6dc078..70fc136 100644 (file)
@@ -1,11 +1,11 @@
-#include "extended.h"
+#include "fss_write.h"
 
 int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   fll_program_data_t data = fll_program_data_t_initialize;
   fss_write_setting_t setting = fss_write_setting_t_initialize;
   setting.state.data = (void *) &data;
-  setting.process_help = &fss_write_extended_print_help;
+  setting.process_help = &fss_write_extended_process_help;
   setting.process_pipe = &fss_write_extended_process_pipe;
   setting.process_normal = &fss_write_extended_process_normal;
 
index b698a8f..c634825 100644 (file)
@@ -1,4 +1,4 @@
-#include "extended.h"
+#include "fss_write.h"
 #include "private-common.h"
 
 #ifdef __cplusplus
@@ -16,6 +16,8 @@ extern "C" {
 
     fss_write_print_help(setting, print);
 
+    f_print_dynamic_raw(f_string_eol_s, print.to);
+
     fll_program_print_help_usage(print, fss_write_program_name_s, f_string_empty_s);
 
     // @todo
index b7b6f0b..8ae3dfd 100644 (file)
@@ -1,4 +1,4 @@
-#include "extended.h"
+#include "fss_write.h"
 #include "private-common.h"
 
 #ifdef __cplusplus
index cd8abd9..0f7be74 100644 (file)
@@ -1,4 +1,4 @@
-#include "extended.h"
+#include "fss_write.h"
 #include "private-common.h"
 #include "private-print.h"
 
index 4429121..e3c2ad5 100644 (file)
@@ -1,4 +1,4 @@
-#include "extended.h"
+#include "fss_write.h"
 #include "private-common.h"
 #include "private-write.h"
 
index 60b8a80..20157d4 100644 (file)
@@ -1,4 +1,4 @@
-#include "extended_list.h"
+#include "fss_write.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -6,6 +6,10 @@ extern "C" {
 
 #ifndef _di_fss_write_extended_list_strings_
   const f_string_static_t fss_write_extended_list_standard_s = macro_f_string_static_t_initialize(FSS_WRITE_extended_list_standard_s, 0, FSS_WRITE_extended_list_standard_s_length);
+
+  const f_string_static_t fss_write_format_code_short_0003_s = macro_f_string_static_t_initialize(FSS_WRITE_format_code_short_0003_s, 0, FSS_WRITE_format_code_short_0003_s_length);
+  const f_string_static_t fss_write_format_code_long_0003_s = macro_f_string_static_t_initialize(FSS_WRITE_format_code_long_0003_s, 0, FSS_WRITE_format_code_long_0003_s_length);
+  const f_string_static_t fss_write_format_code_human_0003_s = macro_f_string_static_t_initialize(FSS_WRITE_format_code_human_0003_s, 0, FSS_WRITE_format_code_human_0003_s_length);
 #endif // _di_fss_write_extended_list_strings_
 
 #ifdef __cplusplus
index 4e79e14..5257247 100644 (file)
@@ -20,11 +20,23 @@ extern "C" {
  * The FSS-0001 (Extended List) specific strings.
  */
 #ifndef _di_fss_write_extended_list_strings_
-  #define FSS_WRITE_extended_list_standard_s "FSS-0001 (Extended List)"
+  #define FSS_WRITE_extended_list_standard_s "FSS-0003 (Extended List)"
+
+  #define FSS_WRITE_format_code_short_0003_s "0003"
+  #define FSS_WRITE_format_code_long_0003_s  "fss-0003"
+  #define FSS_WRITE_format_code_human_0003_s "extended list"
 
   #define FSS_WRITE_extended_list_standard_s_length 24
 
+  #define FSS_WRITE_format_code_short_0003_s_length 4
+  #define FSS_WRITE_format_code_long_0003_s_length  8
+  #define FSS_WRITE_format_code_human_0003_s_length 13
+
   extern const f_string_static_t fss_write_extended_list_standard_s;
+
+  extern const f_string_static_t fss_write_format_code_short_0003_s;
+  extern const f_string_static_t fss_write_format_code_long_0003_s;
+  extern const f_string_static_t fss_write_format_code_human_0003_s;
 #endif // _di_fss_write_extended_list_strings_
 
 #ifdef __cplusplus
diff --git a/level_3/fss_write/c/extended_list/extended_list.c b/level_3/fss_write/c/extended_list/extended_list.c
deleted file mode 100644 (file)
index dbb6e0b..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#include "fss_write_extended_list.h"
-#include "private-common.h"
-#include "private-extended_list.h"
-#include "../main/fss_write.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _di_fss_write_extended_list_process_help_
-  void fss_write_extended_list_process_help(fll_program_data_t * const main, fss_write_setting_t * const setting) {
-
-    fss_write_extended_list_print_help(main, setting);
-  }
-#endif // _di_fss_write_extended_list_process_help_
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
diff --git a/level_3/fss_write/c/extended_list/fss_write.c b/level_3/fss_write/c/extended_list/fss_write.c
new file mode 100644 (file)
index 0000000..f0775dc
--- /dev/null
@@ -0,0 +1,33 @@
+#include "fss_write.h"
+#include "private-common.h"
+#include "private-write.h"
+#include "../main/fss_write.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _di_fss_write_extended_list_process_help_
+  void fss_write_extended_list_process_help(fll_program_data_t * const main, void * const setting) {
+
+    fss_write_extended_list_print_help((fss_write_setting_t *) setting, main->message);
+  }
+#endif // _di_fss_write_extended_list_process_help_
+
+#ifndef _di_fss_write_extended_list_process_normal_
+  void fss_write_extended_list_process_normal(fll_program_data_t * const main, void * const setting) {
+
+    // @todo
+  }
+#endif // _di_fss_write_extended_list_process_normal_
+
+#ifndef _di_fss_write_extended_list_process_pipe_
+  void fss_write_extended_list_process_pipe(fll_program_data_t * const main, void * const setting) {
+
+    // @todo
+  }
+#endif // _di_fss_write_extended_list_process_pipe_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
@@ -26,6 +26,7 @@
 #include <fll/level_0/console.h>
 #include <fll/level_0/conversion.h>
 #include <fll/level_0/file.h>
+#include <fll/level_0/fss.h>
 #include <fll/level_0/pipe.h>
 #include <fll/level_0/print.h>
 #include <fll/level_0/signal.h>
@@ -43,9 +44,9 @@
 #include <fll/level_2/program.h>
 
 // FSS Write includes.
-#include <program/fss_write/extended/common.h>
+#include <program/fss_write/extended_list/common.h>
 #include <program/fss_write/main/common.h>
-#include <program/fss_write/extended/print.h>
+#include <program/fss_write/extended_list/print.h>
 #include <program/fss_write/main/print.h>
 
 #ifdef __cplusplus
@@ -59,20 +60,57 @@ extern "C" {
  *   The main program data.
  * @param setting
  *   The main program settings.
+ *   Must be of type (fss_write_setting_t *).
+ *
+ *   This does not alter setting.status.
+ *
+ * @return
+ *   F_none on success.
+ *   F_output_not on success, but no printing is performed.
+ */
+#ifndef _di_fss_write_extended_list_process_help_
+  extern void fss_write_extended_list_process_help(fll_program_data_t * const main, void * const setting);
+#endif // _di_fss_write_extended_list_process_help_
+
+/**
+ * Process normally, writing to the output.
+ *
+ * @param main
+ *   The main program data.
+ * @param setting
+ *   The main program settings.
+ *   Must be of type (fss_write_setting_t *).
  *
  *   This alters setting.status:
  *     F_none on success.
  *     F_interrupt on (exit) signal received.
  *
  *     F_parameter (with error bit) if main is NULL or setting is NULL.
+ */
+#ifndef _di_fss_write_extended_list_process_normal_
+  extern void fss_write_extended_list_process_normal(fll_program_data_t * const main, void * const setting);
+#endif // _di_fss_write_extended_list_process_normal_
+
+/**
+ * Process the pipe, reading from the pipe and writing to the output.
  *
- * @return
- *   F_none on success.
- *   F_failure (with error bit) for any other failure.
+ * @param main
+ *   The main program data.
+ * @param setting
+ *   The main program settings.
+ *   Must be of type (fss_write_setting_t *).
+ *
+ *   This alters setting.status:
+ *     F_none on success.
+ *     F_data_not on success but pipe contained no relevant data.
+ *     F_extended_list on success and the extended_list has been printed.
+ *     F_interrupt on (exit) signal received.
+ *
+ *     F_parameter (with error bit) if main is NULL or setting is NULL.
  */
-#ifndef _di_fss_write_extended_list_process_help_
-  extern void fss_write_extended_list_process_help(fll_program_data_t * const main, fss_write_setting_t * const setting);
-#endif // _di_fss_write_extended_list_process_help_
+#ifndef _di_fss_write_extended_list_process_pipe_
+  extern void fss_write_extended_list_process_pipe(fll_program_data_t * const main, void * const setting);
+#endif // _di_fss_write_extended_list_process_pipe_
 
 #ifdef __cplusplus
 } // extern "C"
index 4a2b2e5..f6714b8 100644 (file)
@@ -1,11 +1,11 @@
-#include "extended_list.h"
+#include "fss_write.h"
 
 int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   fll_program_data_t data = fll_program_data_t_initialize;
   fss_write_setting_t setting = fss_write_setting_t_initialize;
   setting.state.data = (void *) &data;
-  setting.process_help = &fss_write_extended_list_print_help;
+  setting.process_help = &fss_write_extended_list_process_help;
   setting.process_pipe = &fss_write_extended_list_process_pipe;
   setting.process_normal = &fss_write_extended_list_process_normal;
 
index c1ebcc2..7e882b0 100644 (file)
@@ -1,4 +1,4 @@
-#include "extended_list.h"
+#include "fss_write.h"
 #include "private-common.h"
 
 #ifdef __cplusplus
@@ -16,6 +16,8 @@ extern "C" {
 
     fss_write_print_help(setting, print);
 
+    f_print_dynamic_raw(f_string_eol_s, print.to);
+
     fll_program_print_help_usage(print, fss_write_program_name_s, f_string_empty_s);
 
     // @todo
index cd7888c..8ae3dfd 100644 (file)
@@ -1,4 +1,4 @@
-#include "extended_list.h"
+#include "fss_write.h"
 #include "private-common.h"
 
 #ifdef __cplusplus
index 1ac3a0d..0f7be74 100644 (file)
@@ -1,4 +1,4 @@
-#include "extended_list.h"
+#include "fss_write.h"
 #include "private-common.h"
 #include "private-print.h"
 
index 40219c1..e3c2ad5 100644 (file)
@@ -1,4 +1,4 @@
-#include "extended_list.h"
+#include "fss_write.h"
 #include "private-common.h"
 #include "private-write.h"
 
index 609eece..2d5802b 100644 (file)
@@ -85,6 +85,32 @@ extern "C" {
   extern const f_string_static_t fss_write_pipe_content_start_s;
 #endif // _di_fss_write_defines_
 
+/**
+ * Designate the supported formats for the main (fss_write) program.
+ *
+ * These are intended to be used for communicating or selecting an "--as" option.
+ *
+ * The digit value of the codes are intended to exactly match the numeric representation.
+ *
+ * fss_write_format_code_*_e:
+ *   - 0000: The FSS-0000 (Basic) format.
+ *   - 0001: The FSS-0001 (Extended) format.
+ *   - 0002: The FSS-0002 (Basic List) format.
+ *   - 0003: The FSS-0003 (Extended List) format.
+ *   - 0008: The FSS-0008 (Embedded List) format.
+ *   - 000e: The FSS-000E (Payload) format.
+ */
+#ifndef _di_fss_write_formats_
+  enum {
+    fss_write_format_code_0000_e = 0x0,
+    fss_write_format_code_0001_e = 0x1,
+    fss_write_format_code_0002_e = 0x2,
+    fss_write_format_code_0003_e = 0x3,
+    fss_write_format_code_0008_e = 0x8,
+    fss_write_format_code_000e_e = 0xe,
+  };
+#endif // _di_fss_write_formats_
+
 /**
  * A collection of static strings associated with FSS Payload Write.
  */
@@ -314,9 +340,9 @@ extern "C" {
     f_string_dynamics_t objects;
     f_string_dynamics_t contents;
 
-    void (*process_help)(fll_program_data_t * const main, fss_write_setting_t * const setting);
-    void (*process_normal)(fll_program_data_t * const main, fss_write_setting_t * const setting);
-    void (*process_pipe)(fll_program_data_t * const main, fss_write_setting_t * const setting);
+    void (*process_help)(fll_program_data_t * const main, void * const setting);
+    void (*process_normal)(fll_program_data_t * const main, void * const setting);
+    void (*process_pipe)(fll_program_data_t * const main, void * const setting);
   } fss_write_setting_t;
 
   #define fss_write_setting_t_initialize \
index 93779ee..2e7ec1b 100644 (file)
@@ -14,7 +14,7 @@ extern "C" {
     setting->status = F_none;
 
     if (setting->flag & fss_write_main_flag_help_e) {
-      fss_write_print_help(setting, main->message);
+      setting->process_help(main, (void *) setting);
 
       return;
     }
index b68c1d4..4468f25 100644 (file)
 #include <fll/level_0/console.h>
 #include <fll/level_0/conversion.h>
 #include <fll/level_0/file.h>
+#include <fll/level_0/fss.h>
 #include <fll/level_0/pipe.h>
 #include <fll/level_0/print.h>
 #include <fll/level_0/signal.h>
 
 // FLL-1 includes.
 #include <fll/level_1/conversion.h>
-#include <fll/level_1/fss/basic_list.h>
 #include <fll/level_1/print.h>
 #include <fll/level_1/string.h>
 
 // FLL-2 includes.
 #include <fll/level_2/error.h>
-#include <fll/level_2/fss/payload.h>
 #include <fll/level_2/print.h>
 #include <fll/level_2/program.h>
 
 // FSS Write includes.
-#include <program/fss_write/common.h>
-#include <program/fss_write/print.h>
+#include <program/fss_write/main/common.h>
+#include <program/fss_write/main/print.h>
 
 #ifdef __cplusplus
 extern "C" {
index 738bc2d..d8634d2 100644 (file)
@@ -1,10 +1,11 @@
 #include "fss_write.h"
-#include "basic/basic.h"
-#include "basic_list/basic_list.h"
-#include "extended/extended.h"
-#include "extended_list/extended_list.h"
-#include "embedded_list/embedded_list.h"
-#include "payload/payload.h"
+#include "main.h"
+#include "../basic/fss_write.h"
+#include "../basic_list/fss_write.h"
+#include "../extended/fss_write.h"
+#include "../extended_list/fss_write.h"
+#include "../embedded_list/fss_write.h"
+#include "../payload/fss_write.h"
 
 int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
@@ -13,7 +14,7 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
   setting.state.data = (void *) &data;
 
   // Default to Basic.
-  setting.process_help = &fss_write_basic_print_help;
+  setting.process_help = &fss_write_main_process_help;
   setting.process_pipe = &fss_write_basic_process_pipe;
   setting.process_normal = &fss_write_basic_process_normal;
 
@@ -44,3 +45,75 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   return F_status_is_error(setting.status) ? 1 : 0;
 }
+
+#ifndef _di_fss_write_main_process_help_
+  void fss_write_main_process_help(fll_program_data_t * const main, void * const void_setting) {
+
+    fss_write_setting_t * const setting = (fss_write_setting_t *) void_setting;
+
+    f_file_stream_lock(main->message.to);
+
+    f_print_dynamic_raw(setting->line_first, main->message.to);
+
+    fll_program_print_help_header(main->message, fss_write_program_name_long_s, fss_write_program_version_s);
+
+    fss_write_print_help(setting, main->message);
+
+    fll_program_print_help_option(main->message, fss_write_short_as_s, fss_write_long_as_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "Designate the supported format to write as.");
+
+    f_print_dynamic_raw(f_string_eol_s, main->message.to);
+    f_print_dynamic_raw(f_string_eol_s, main->message.to);
+
+    fll_program_print_help_usage(main->message, fss_write_program_name_s, f_string_empty_s);
+
+    f_print_dynamic_raw(f_string_eol_s, main->message.to);
+
+    fl_print_format("  The '%[%r%r%]' parameter supports the following standards with the specified possible case-sensitive values%r", main->message.to, main->message.set->notable, f_console_symbol_long_normal_s, fss_write_long_as_s, main->message.set->notable, f_string_eol_s);
+
+    // FSS-0000 (Basic)
+    fl_print_format("    - As %[%r%]         format: ", main->message.to, main->message.set->notable, fss_write_basic_standard_s, main->message.set->notable);
+    fl_print_format("'%[%r%]', ", main->message.to, main->message.set->notable, fss_write_format_code_short_0000_s, main->message.set->notable);
+    fl_print_format("'%[%r%]', or ", main->message.to, main->message.set->notable, fss_write_format_code_long_0000_s, main->message.set->notable);
+    fl_print_format("'%[%r%]'.%r", main->message.to, main->message.set->notable, fss_write_format_code_human_0000_s, main->message.set->notable, f_string_eol_s);
+
+    // FSS-0001 (Extended)
+    fl_print_format("    - As %[%r%]      format: ", main->message.to, main->message.set->notable, fss_write_extended_standard_s, main->message.set->notable);
+    fl_print_format("'%[%r%]', ", main->message.to, main->message.set->notable, fss_write_format_code_short_0001_s, main->message.set->notable);
+    fl_print_format("'%[%r%]', or ", main->message.to, main->message.set->notable, fss_write_format_code_long_0001_s, main->message.set->notable);
+    fl_print_format("'%[%r%]'.%r", main->message.to, main->message.set->notable, fss_write_format_code_human_0001_s, main->message.set->notable, f_string_eol_s);
+
+    // FSS-0002 (Basic List)
+    fl_print_format("    - As %[%r%]    format: ", main->message.to, main->message.set->notable, fss_write_basic_list_standard_s, main->message.set->notable);
+    fl_print_format("'%[%r%]', ", main->message.to, main->message.set->notable, fss_write_format_code_short_0002_s, main->message.set->notable);
+    fl_print_format("'%[%r%]', or ", main->message.to, main->message.set->notable, fss_write_format_code_long_0002_s, main->message.set->notable);
+    fl_print_format("'%[%r%]'.%r", main->message.to, main->message.set->notable, fss_write_format_code_human_0002_s, main->message.set->notable, f_string_eol_s);
+
+    // FSS-0003 (Extended List)
+    fl_print_format("    - As %[%r%] format: ", main->message.to, main->message.set->notable, fss_write_extended_list_standard_s, main->message.set->notable);
+    fl_print_format("'%[%r%]', ", main->message.to, main->message.set->notable, fss_write_format_code_short_0003_s, main->message.set->notable);
+    fl_print_format("'%[%r%]', or ", main->message.to, main->message.set->notable, fss_write_format_code_long_0003_s, main->message.set->notable);
+    fl_print_format("'%[%r%]'.%r", main->message.to, main->message.set->notable, fss_write_format_code_human_0003_s, main->message.set->notable, f_string_eol_s);
+
+    // FSS-0008 (Embedded List)
+    fl_print_format("    - As %[%r%] format: ", main->message.to, main->message.set->notable, fss_write_embedded_list_standard_s, main->message.set->notable);
+    fl_print_format("'%[%r%]', ", main->message.to, main->message.set->notable, fss_write_format_code_short_0008_s, main->message.set->notable);
+    fl_print_format("'%[%r%]', or ", main->message.to, main->message.set->notable, fss_write_format_code_long_0008_s, main->message.set->notable);
+    fl_print_format("'%[%r%]'.%r", main->message.to, main->message.set->notable, fss_write_format_code_human_0008_s, main->message.set->notable, f_string_eol_s);
+
+    // FSS-000E (Payload)
+    fl_print_format("    - As %[%r%]       format: ", main->message.to, main->message.set->notable, fss_write_payload_standard_s, main->message.set->notable);
+    fl_print_format("'%[%r%]', ", main->message.to, main->message.set->notable, fss_write_format_code_short_000e_s, main->message.set->notable);
+    fl_print_format("'%[%r%]', or ", main->message.to, main->message.set->notable, fss_write_format_code_long_000e_s, main->message.set->notable);
+    fl_print_format("'%[%r%]'.%r", main->message.to, main->message.set->notable, fss_write_format_code_human_000e_s, main->message.set->notable, f_string_eol_s);
+
+    f_print_dynamic_raw(f_string_eol_s, main->message.to);
+
+    fl_print_format("  The %[%r%] format is the default when no ", main->message.to, main->message.set->notable, fss_write_basic_standard_s, main->message.set->notable);
+    fl_print_format("'%[%r%r%]' is specified.%r", main->message.to, main->message.set->notable, f_console_symbol_long_normal_s, fss_write_long_as_s, main->message.set->notable, f_string_eol_s);
+
+    f_print_dynamic_raw(setting->line_last, main->message.to);
+
+    f_file_stream_flush(main->message.to);
+    f_file_stream_unlock(main->message.to);
+  }
+#endif // _di_fss_write_main_process_help_
diff --git a/level_3/fss_write/c/main/main.h b/level_3/fss_write/c/main/main.h
new file mode 100644 (file)
index 0000000..a4b3d5d
--- /dev/null
@@ -0,0 +1,42 @@
+/**
+ * FLL - Level 3
+ *
+ * Project: FSS Write
+ * API Version: 0.7
+ * Licenses: lgpl-2.1-or-later
+ *
+ * This file is only ever included by main/main.c and should not normally be included anywhere else.
+ * Anything that wants to include this should be providing the "main" program functionality in some manner.
+ * Any program utilizing this should link to the "main" program library.
+ */
+#ifndef _fss_write_main_h
+#define _fss_write_main_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Process printing help for when not specifying "--as".
+ *
+ * @param main
+ *   The main program data.
+ * @param setting
+ *   The main program settings.
+ *   Must be of type (fss_write_setting_t *).
+ *
+ *   This does not alter setting.status.
+ *
+ * @return
+ *   F_none on success.
+ *   F_output_not on success, but no printing is performed.
+ */
+#ifndef _di_fss_write_main_process_help_
+  extern void fss_write_main_process_help(fll_program_data_t * const main, void * const setting);
+#endif // _di_fss_write_main_process_help_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // _fss_write_main_h
index 7a9bf5d..8b29731 100644 (file)
@@ -115,7 +115,6 @@ extern "C" {
     fll_program_print_help_option(print, fss_write_short_trim_s, fss_write_long_trim_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "   Trim Object names.");
 
     f_print_dynamic_raw(f_string_eol_s, print.to);
-    f_print_dynamic_raw(f_string_eol_s, print.to);
   }
 #endif // _di_fss_write_print_help_
 
index ad22798..54bb78c 100644 (file)
@@ -1,4 +1,4 @@
-#include "payload.h"
+#include "fss_write.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -6,6 +6,10 @@ extern "C" {
 
 #ifndef _di_fss_write_payload_strings_
   const f_string_static_t fss_write_payload_standard_s = macro_f_string_static_t_initialize(FSS_WRITE_payload_standard_s, 0, FSS_WRITE_payload_standard_s_length);
+
+  const f_string_static_t fss_write_format_code_short_000e_s = macro_f_string_static_t_initialize(FSS_WRITE_format_code_short_000e_s, 0, FSS_WRITE_format_code_short_000e_s_length);
+  const f_string_static_t fss_write_format_code_long_000e_s = macro_f_string_static_t_initialize(FSS_WRITE_format_code_long_000e_s, 0, FSS_WRITE_format_code_long_000e_s_length);
+  const f_string_static_t fss_write_format_code_human_000e_s = macro_f_string_static_t_initialize(FSS_WRITE_format_code_human_000e_s, 0, FSS_WRITE_format_code_human_000e_s_length);
 #endif // _di_fss_write_payload_strings_
 
 #ifdef __cplusplus
index 6ea77f6..afccfc6 100644 (file)
@@ -22,9 +22,21 @@ extern "C" {
 #ifndef _di_fss_write_payload_strings_
   #define FSS_WRITE_payload_standard_s "FSS-000E (Payload)"
 
+  #define FSS_WRITE_format_code_short_000e_s "000e"
+  #define FSS_WRITE_format_code_long_000e_s  "fss-000e"
+  #define FSS_WRITE_format_code_human_000e_s "payload"
+
   #define FSS_WRITE_payload_standard_s_length 18
 
+  #define FSS_WRITE_format_code_short_000e_s_length 4
+  #define FSS_WRITE_format_code_long_000e_s_length  8
+  #define FSS_WRITE_format_code_human_000e_s_length 7
+
   extern const f_string_static_t fss_write_payload_standard_s;
+
+  extern const f_string_static_t fss_write_format_code_short_000e_s;
+  extern const f_string_static_t fss_write_format_code_long_000e_s;
+  extern const f_string_static_t fss_write_format_code_human_000e_s;
 #endif // _di_fss_write_payload_strings_
 
 #ifdef __cplusplus
similarity index 95%
rename from level_3/fss_write/c/payload/payload.c
rename to level_3/fss_write/c/payload/fss_write.c
index 0730dde..9af12f8 100644 (file)
@@ -1,6 +1,6 @@
-#include "fss_write_payload.h"
+#include "fss_write.h"
 #include "private-common.h"
-#include "private-payload.h"
+#include "private-write.h"
 #include "../main/fss_write.h"
 
 #ifdef __cplusplus
@@ -8,15 +8,16 @@ extern "C" {
 #endif
 
 #ifndef _di_fss_write_payload_process_help_
-  void fss_write_payload_process_help(fll_program_data_t * const main, fss_write_setting_t * const setting) {
+  void fss_write_payload_process_help(fll_program_data_t * const main, void * const setting) {
 
-    fss_write_payload_print_help(main, setting);
+    fss_write_payload_print_help((fss_write_setting_t *) setting, main->message);
   }
 #endif // _di_fss_write_payload_process_help_
 
 #ifndef _di_fss_write_payload_process_normal_
-  void fss_write_payload_process_normal(fll_program_data_t * const main, fss_write_setting_t * const setting) {
+  void fss_write_payload_process_normal(fll_program_data_t * const main, void * const void_setting) {
 
+    fss_write_setting_t * const setting = (fss_write_setting_t *) void_setting;
     f_string_statics_t *objects = &setting->objects;
     f_string_statics_t *contents = &setting->contents;
     f_string_statics_t *data = &setting->objects;
@@ -50,8 +51,9 @@ extern "C" {
 #endif // _di_fss_write_payload_process_normal_
 
 #ifndef _di_fss_write_payload_process_pipe_
-  void fss_write_payload_process_pipe(fll_program_data_t * const main, fss_write_setting_t * const setting) {
+  void fss_write_payload_process_pipe(fll_program_data_t * const main, void * const void_setting) {
 
+    fss_write_setting_t * const setting = (fss_write_setting_t *) void_setting;
     f_status_t status_pipe = F_none;
     f_file_t input = f_file_t_initialize;
     input.id = F_type_descriptor_input_d;
@@ -182,7 +184,7 @@ extern "C" {
           printed |= 0x2;
 
           // Designate to read next block from pipe.
-          range.start = 1;fss_write_payload_process_set
+          range.start = 1; // fss_write_payload_process_set ??
           range.stop = 0;
 
           continue;
@@ -204,7 +206,7 @@ extern "C" {
 
               if (main->error.verbosity > f_console_verbosity_quiet_e) {
                 fss_write_print_line_first_locked(setting, main->error);
-                fss_write_print_error_one_content_only(setting, main->error, "FSS-000E (Payload)");
+                fss_write_print_error_one_content_only(setting, main->error, fss_write_payload_standard_s);
                 fss_write_print_line_last_locked(setting, main->error);
               }
 
@@ -344,7 +346,7 @@ extern "C" {
           setting->status = F_status_set_error(F_supported_not);
 
           fss_write_print_line_first_locked(setting, main->error);
-          fss_write_print_error_unsupported_eol(setting, main->error);
+          fss_write_print_error_unsupported_eol(setting, main->error, fss_write_payload_standard_s);
           fss_write_print_line_last_locked(setting, main->error);
 
           return;
@@ -383,7 +385,7 @@ extern "C" {
           setting->status = F_status_set_error(F_supported_not);
 
           fss_write_print_line_first_locked(setting, main->error);
-          fss_write_print_error_unsupported_eol(setting, main->error);
+          fss_write_print_error_unsupported_eol(setting, main->error, fss_write_payload_standard_s);
           fss_write_print_line_last_locked(setting, main->error);
 
           return;
similarity index 86%
rename from level_3/fss_write/c/payload/payload.h
rename to level_3/fss_write/c/payload/fss_write.h
index cfe9440..90ce957 100644 (file)
@@ -26,6 +26,7 @@
 #include <fll/level_0/console.h>
 #include <fll/level_0/conversion.h>
 #include <fll/level_0/file.h>
+#include <fll/level_0/fss.h>
 #include <fll/level_0/pipe.h>
 #include <fll/level_0/print.h>
 #include <fll/level_0/signal.h>
@@ -59,19 +60,16 @@ extern "C" {
  *   The main program data.
  * @param setting
  *   The main program settings.
+ *   Must be of type (fss_write_setting_t *).
  *
- *   This alters setting.status:
- *     F_none on success.
- *     F_interrupt on (exit) signal received.
- *
- *     F_parameter (with error bit) if main is NULL or setting is NULL.
+ *   This does not alter setting.status.
  *
  * @return
  *   F_none on success.
- *   F_failure (with error bit) for any other failure.
+ *   F_output_not on success, but no printing is performed.
  */
 #ifndef _di_fss_write_payload_process_help_
-  extern void fss_write_payload_process_help(fll_program_data_t * const main, fss_write_setting_t * const setting);
+  extern void fss_write_payload_process_help(fll_program_data_t * const main, void * const setting);
 #endif // _di_fss_write_payload_process_help_
 
 /**
@@ -81,6 +79,7 @@ extern "C" {
  *   The main program data.
  * @param setting
  *   The main program settings.
+ *   Must be of type (fss_write_setting_t *).
  *
  *   This alters setting.status:
  *     F_none on success.
@@ -89,7 +88,7 @@ extern "C" {
  *     F_parameter (with error bit) if main is NULL or setting is NULL.
  */
 #ifndef _di_fss_write_payload_process_normal_
-  extern void fss_write_payload_process_normal(fll_program_data_t * const main, fss_write_setting_t * const setting);
+  extern void fss_write_payload_process_normal(fll_program_data_t * const main, void * const setting);
 #endif // _di_fss_write_payload_process_normal_
 
 /**
@@ -99,6 +98,7 @@ extern "C" {
  *   The main program data.
  * @param setting
  *   The main program settings.
+ *   Must be of type (fss_write_setting_t *).
  *
  *   This alters setting.status:
  *     F_none on success.
@@ -109,7 +109,7 @@ extern "C" {
  *     F_parameter (with error bit) if main is NULL or setting is NULL.
  */
 #ifndef _di_fss_write_payload_process_pipe_
-  extern void fss_write_payload_process_pipe(fll_program_data_t * const main, fss_write_setting_t * const setting);
+  extern void fss_write_payload_process_pipe(fll_program_data_t * const main, void * const setting);
 #endif // _di_fss_write_payload_process_pipe_
 
 /**
@@ -132,9 +132,9 @@ extern "C" {
  *   The content to escape and print.
  *   Set pointer address to 0 to not use.
  */
-#ifndef _di_fss_write_process_payload_set_
-  extern void fss_write_process_payload_set(fll_program_data_t * const main, fss_write_setting_t * const setting, const f_string_static_t *object, const f_string_static_t *content);
-#endif // _di_fss_write_process_payload_set_
+#ifndef _di_fss_write_payload_process_set_
+  extern void fss_write_payload_process_set(fll_program_data_t * const main, fss_write_setting_t * const setting, const f_string_static_t *object, const f_string_static_t *content);
+#endif // _di_fss_write_payload_process_set_
 
 #ifdef __cplusplus
 } // extern "C"
index 2fc9773..bfd6074 100644 (file)
@@ -1,11 +1,11 @@
-#include "payload.h"
+#include "fss_write.h"
 
 int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   fll_program_data_t data = fll_program_data_t_initialize;
   fss_write_setting_t setting = fss_write_setting_t_initialize;
   setting.state.data = (void *) &data;
-  setting.process_help = &fss_write_payload_print_help;
+  setting.process_help = &fss_write_payload_process_help;
   setting.process_pipe = &fss_write_payload_process_pipe;
   setting.process_normal = &fss_write_payload_process_normal;
 
index 95335a7..1421d22 100644 (file)
@@ -1,4 +1,4 @@
-#include "payload.h"
+#include "fss_write.h"
 #include "private-common.h"
 
 #ifdef __cplusplus
@@ -16,6 +16,8 @@ extern "C" {
 
     fss_write_print_help(setting, print);
 
+    f_print_dynamic_raw(f_string_eol_s, print.to);
+
     fll_program_print_help_usage(print, fss_write_program_name_s, f_string_empty_s);
 
     fl_print_format("%r  The pipe uses the Backspace character '%[\\b%]' (%[U+0008%]) to designate the start of a Content.%r", print.to, f_string_eol_s, print.set->notable, print.set->notable, print.set->notable, print.set->notable, f_string_eol_s);
index daf0cfd..8ae3dfd 100644 (file)
@@ -1,4 +1,4 @@
-#include "payload.h"
+#include "fss_write.h"
 #include "private-common.h"
 
 #ifdef __cplusplus
index a0ccc02..0f7be74 100644 (file)
@@ -1,4 +1,4 @@
-#include "payload.h"
+#include "fss_write.h"
 #include "private-common.h"
 #include "private-print.h"
 
index 920117d..e3c2ad5 100644 (file)
@@ -1,4 +1,4 @@
-#include "payload.h"
+#include "fss_write.h"
 #include "private-common.h"
 #include "private-write.h"
 
index 3cad9dc..79e81d7 100644 (file)
@@ -32,7 +32,7 @@ build_sources_library payload/fss_write.c payload/common.c payload/print.c paylo
 
 build_sources_program main/main.c
 
-build_sources_headers main/fss_write.h main/common.h main/print.h main/private-common.h main/private-write.h
+build_sources_headers main/main.h main/fss_write.h main/common.h main/print.h main/private-common.h main/private-write.h
 build_sources_headers basic/fss_write.h basic/common.h basic/print.h basic/private-common.h basic/private-write.h basic/private-print.h
 build_sources_headers basic_list/fss_write.h basic_list/common.h basic_list/print.h basic_list/private-common.h basic_list/private-write.h basic_list/private-print.h
 build_sources_headers embedded_list/fss_write.h embedded_list/common.h embedded_list/print.h embedded_list/private-common.h embedded_list/private-write.h embedded_list/private-print.h