]> Kevux Git Server - fll/commitdiff
Progress: Make some progress towards getting fss_read up and running.
authorKevin Day <kevin@kevux.org>
Fri, 28 Apr 2023 03:00:47 +0000 (22:00 -0500)
committerKevin Day <kevin@kevux.org>
Fri, 28 Apr 2023 03:00:47 +0000 (22:00 -0500)
This mostly focuses on the print help functions.

Fix the incorrectly spelled "aplied".
Fix the help messages in the read man pages.

Add *_format_code_name_* for an upper-case human friendly name.
Add this to the fss_write as well given that the programs follow the "programs as a library" design.

44 files changed:
level_3/fss_basic_list_read/c/common.h
level_3/fss_read/c/basic/common.c
level_3/fss_read/c/basic/common.h
level_3/fss_read/c/basic/print.c
level_3/fss_read/c/basic_list/common.c
level_3/fss_read/c/basic_list/common.h
level_3/fss_read/c/basic_list/print.c
level_3/fss_read/c/embedded_list/common.c
level_3/fss_read/c/embedded_list/common.h
level_3/fss_read/c/embedded_list/print.c
level_3/fss_read/c/extended/common.c
level_3/fss_read/c/extended/common.h
level_3/fss_read/c/extended/print.c
level_3/fss_read/c/extended_list/common.c
level_3/fss_read/c/extended_list/common.h
level_3/fss_read/c/extended_list/print.c
level_3/fss_read/c/main/common.c
level_3/fss_read/c/main/common/enumeration.h
level_3/fss_read/c/main/common/string.c
level_3/fss_read/c/main/common/string.h
level_3/fss_read/c/main/main/print.c
level_3/fss_read/c/main/print/message.c
level_3/fss_read/c/main/print/message.h
level_3/fss_read/c/payload/common.c
level_3/fss_read/c/payload/common.h
level_3/fss_read/c/payload/print.c
level_3/fss_read/data/documentation/man/man1/fss_basic_list_read.1
level_3/fss_read/data/documentation/man/man1/fss_basic_read.1
level_3/fss_read/data/documentation/man/man1/fss_embedded_list_read.1
level_3/fss_read/data/documentation/man/man1/fss_extended_list_read.1
level_3/fss_read/data/documentation/man/man1/fss_extended_read.1
level_3/fss_read/data/documentation/man/man1/fss_payload_read.1
level_3/fss_write/c/basic/common.c
level_3/fss_write/c/basic/common.h
level_3/fss_write/c/basic_list/common.c
level_3/fss_write/c/basic_list/common.h
level_3/fss_write/c/embedded_list/common.c
level_3/fss_write/c/embedded_list/common.h
level_3/fss_write/c/extended/common.c
level_3/fss_write/c/extended/common.h
level_3/fss_write/c/extended_list/common.c
level_3/fss_write/c/extended_list/common.h
level_3/fss_write/c/payload/common.c
level_3/fss_write/c/payload/common.h

index 0c9a6c5..14a7272 100644 (file)
@@ -258,7 +258,7 @@ extern "C" {
  * FSS Delimit Parameter strings.
  *
  * fss_basic_list_read_delimit_mode_*:
- *   - all:                    All delimits are to be aplied.
+ *   - all:                    All delimits are to be applied.
  *   - content:                Content are to have delimits applied.
  *   - content_greater:        Content at this number or higher are to have delimits applied.
  *   - content_greater_object: Objects and Content at this number or higher are to have delimits applied.
index 6e6619b..14c4e2e 100644 (file)
@@ -14,6 +14,7 @@ extern "C" {
   const f_string_static_t fss_read_format_code_long_0000_s = macro_f_string_static_t_initialize_1(FSS_READ_format_code_long_0000_s, 0, FSS_READ_format_code_long_0000_s_length);
   const f_string_static_t fss_read_format_code_human_0000_s = macro_f_string_static_t_initialize_1(FSS_READ_format_code_human_0000_s, 0, FSS_READ_format_code_human_0000_s_length);
   const f_string_static_t fss_read_format_code_machine_0000_s = macro_f_string_static_t_initialize_1(FSS_READ_format_code_machine_0000_s, 0, FSS_READ_format_code_machine_0000_s_length);
+  const f_string_static_t fss_read_format_code_name_0000_s = macro_f_string_static_t_initialize_1(FSS_READ_format_code_name_0000_s, 0, FSS_READ_format_code_name_0000_s_length);
 #endif // _di_fss_read_basic_s_
 
 #ifdef __cplusplus
index 2b0c72a..b40be92 100644 (file)
@@ -29,6 +29,7 @@ extern "C" {
   #define FSS_READ_format_code_long_0000_s    "fss-0000"
   #define FSS_READ_format_code_human_0000_s   "basic"
   #define FSS_READ_format_code_machine_0000_s "basic"
+  #define FSS_READ_format_code_name_0000_s    "Basic"
 
   #define FSS_READ_basic_standard_s_length 16
 
@@ -39,6 +40,7 @@ extern "C" {
   #define FSS_READ_format_code_long_0000_s_length    8
   #define FSS_READ_format_code_human_0000_s_length   5
   #define FSS_READ_format_code_machine_0000_s_length 5
+  #define FSS_READ_format_code_name_0000_s_length    4
 
   extern const f_string_static_t fss_read_basic_standard_s;
 
@@ -49,6 +51,7 @@ extern "C" {
   extern const f_string_static_t fss_read_format_code_long_0000_s;
   extern const f_string_static_t fss_read_format_code_human_0000_s;
   extern const f_string_static_t fss_read_format_code_machine_0000_s;
+  extern const f_string_static_t fss_read_format_code_name_0000_s;
 #endif // _di_fss_read_basic_s_
 
 #ifdef __cplusplus
index a87aac9..d3eee9e 100644 (file)
@@ -19,15 +19,11 @@ extern "C" {
 
     fll_program_print_help_usage(print, fss_read_basic_program_name_s, f_string_empty_s);
 
-    fss_read_print_message_help_pipe(print);
-
-    fss_read_print_message_help_end_next(print);
+    fss_read_print_message_help_note_header(print, fss_read_format_code_short_0000_s, fss_read_format_code_name_0000_s);
 
-    fl_print_format("%r  The FSS-0000 (Basic) specification does not support multi-line Content, therefore the parameter '%[%r%r%]'", print->to, f_string_eol_s, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_prepend_s, print->set->notable);
-    fl_print_format(" does nothing.%r%r", print->to, f_string_eol_s, f_string_eol_s);
+    fss_read_print_message_help_pipe(print);
 
-    fl_print_format("  This program does not use the parameter '%[%r%r%]', which therefore does nothing.%r", print->to, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_ignore_s, print->set->notable, f_string_eol_s);
-    fl_print_format("  This parameter requires two values.%r", print->to, f_string_eol_s);
+    fss_read_print_message_help_note(print, F_false);
 
     f_file_stream_flush(print->to);
     f_file_stream_unlock(print->to);
index 6674ef0..4f89ff2 100644 (file)
@@ -14,6 +14,7 @@ extern "C" {
   const f_string_static_t fss_read_format_code_long_0002_s = macro_f_string_static_t_initialize_1(FSS_READ_format_code_long_0002_s, 0, FSS_READ_format_code_long_0002_s_length);
   const f_string_static_t fss_read_format_code_human_0002_s = macro_f_string_static_t_initialize_1(FSS_READ_format_code_human_0002_s, 0, FSS_READ_format_code_human_0002_s_length);
   const f_string_static_t fss_read_format_code_machine_0002_s = macro_f_string_static_t_initialize_1(FSS_READ_format_code_machine_0002_s, 0, FSS_READ_format_code_machine_0002_s_length);
+  const f_string_static_t fss_read_format_code_name_0002_s = macro_f_string_static_t_initialize_1(FSS_READ_format_code_name_0002_s, 0, FSS_READ_format_code_name_0002_s_length);
 #endif // _di_fss_read_basic_list_s_
 
 #ifdef __cplusplus
index 78d201f..a75e145 100644 (file)
@@ -29,6 +29,7 @@ extern "C" {
   #define FSS_READ_format_code_long_0002_s    "fss-0002"
   #define FSS_READ_format_code_human_0002_s   "basic list"
   #define FSS_READ_format_code_machine_0002_s "basic_list"
+  #define FSS_READ_format_code_name_0002_s    "Basic List"
 
   #define FSS_READ_basic_list_standard_s_length 21
 
@@ -39,6 +40,7 @@ extern "C" {
   #define FSS_READ_format_code_long_0002_s_length    8
   #define FSS_READ_format_code_human_0002_s_length   10
   #define FSS_READ_format_code_machine_0002_s_length 10
+  #define FSS_READ_format_code_name_0002_s_length    10
 
   extern const f_string_static_t fss_read_basic_list_standard_s;
 
@@ -49,6 +51,7 @@ extern "C" {
   extern const f_string_static_t fss_read_format_code_long_0002_s;
   extern const f_string_static_t fss_read_format_code_human_0002_s;
   extern const f_string_static_t fss_read_format_code_machine_0002_s;
+  extern const f_string_static_t fss_read_format_code_name_0002_s;
 #endif // _di_fss_read_basic_list_s_
 
 #ifdef __cplusplus
index 1f8a055..66f64e4 100644 (file)
@@ -19,15 +19,11 @@ extern "C" {
 
     fll_program_print_help_usage(print, fss_read_basic_list_program_name_s, f_string_empty_s);
 
-    fss_read_print_message_help_pipe(print);
-
-    fss_read_print_message_help_end_next(print);
+    fss_read_print_message_help_note_header(print, fss_read_format_code_short_0002_s, fss_read_format_code_name_0002_s);
 
-    fl_print_format("%r  The FSS-0002 (Basic List) specification does not support quoted names, therefore the parameters '%[%r%r%]'", print->to, f_string_eol_s, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_single_s, print->set->notable);
-    fl_print_format(" and '%[%r%r%]' do nothing.%r%r", print->to, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_double_s, print->set->notable, f_string_eol_s, f_string_eol_s);
+    fss_read_print_message_help_pipe(print);
 
-    fl_print_format("  This program does not use the parameter '%[%r%r%]', which therefore does nothing.%r", print->to, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_ignore_s, print->set->notable, f_string_eol_s);
-    fl_print_format("  This parameter requires two values.%r", print->to, f_string_eol_s);
+    fss_read_print_message_help_note(print, F_true);
 
     f_file_stream_flush(print->to);
     f_file_stream_unlock(print->to);
index dce430f..ee84c79 100644 (file)
@@ -14,6 +14,7 @@ extern "C" {
   const f_string_static_t fss_read_format_code_long_0008_s = macro_f_string_static_t_initialize_1(FSS_READ_format_code_long_0008_s, 0, FSS_READ_format_code_long_0008_s_length);
   const f_string_static_t fss_read_format_code_human_0008_s = macro_f_string_static_t_initialize_1(FSS_READ_format_code_human_0008_s, 0, FSS_READ_format_code_human_0008_s_length);
   const f_string_static_t fss_read_format_code_machine_0008_s = macro_f_string_static_t_initialize_1(FSS_READ_format_code_machine_0008_s, 0, FSS_READ_format_code_machine_0008_s_length);
+  const f_string_static_t fss_read_format_code_name_0008_s = macro_f_string_static_t_initialize_1(FSS_READ_format_code_name_0008_s, 0, FSS_READ_format_code_name_0008_s_length);
 #endif // _di_fss_read_embedded_list_s_
 
 #ifdef __cplusplus
index 8f97e8a..2d600b0 100644 (file)
@@ -29,6 +29,7 @@ extern "C" {
   #define FSS_READ_format_code_long_0008_s    "fss-0008"
   #define FSS_READ_format_code_human_0008_s   "embedded list"
   #define FSS_READ_format_code_machine_0008_s "embedded_list"
+  #define FSS_READ_format_code_name_0008_s    "Embedded List"
 
   #define FSS_READ_embedded_list_standard_s_length 24
 
@@ -39,6 +40,7 @@ extern "C" {
   #define FSS_READ_format_code_long_0008_s_length    8
   #define FSS_READ_format_code_human_0008_s_length   13
   #define FSS_READ_format_code_machine_0008_s_length 13
+  #define FSS_READ_format_code_name_0008_s_length    13
 
   extern const f_string_static_t fss_read_embedded_list_standard_s;
 
@@ -49,6 +51,7 @@ extern "C" {
   extern const f_string_static_t fss_read_format_code_long_0008_s;
   extern const f_string_static_t fss_read_format_code_human_0008_s;
   extern const f_string_static_t fss_read_format_code_machine_0008_s;
+  extern const f_string_static_t fss_read_format_code_name_0008_s;
 #endif // _di_fss_read_embedded_list_s_
 
 #ifdef __cplusplus
index a363b41..bac7ecf 100644 (file)
@@ -19,18 +19,11 @@ extern "C" {
 
     fll_program_print_help_usage(print, fss_read_embedded_list_program_name_s, f_string_empty_s);
 
-    fss_read_print_message_help_pipe(print);
-
-    fss_read_print_message_help_end_next(print);
+    fss_read_print_message_help_note_header(print, fss_read_format_code_short_0008_s, fss_read_format_code_name_0008_s);
 
-    fl_print_format("%r  The FSS-0008 (Embedded List) specification does not support quoted names, therefore the parameters '%[%r%r%]'", print->to, f_string_eol_s, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_single_s, print->set->notable);
-    fl_print_format(" and '%[%r%r%]' do nothing.%r%r", print->to, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_double_s, print->set->notable, f_string_eol_s, f_string_eol_s);
+    fss_read_print_message_help_pipe(print);
 
-    fl_print_format("  The parameter '%[%r%r%]' designates to not escape any valid nested Object or Content within some Content.%r", print->to, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_ignore_s, print->set->notable, f_string_eol_s);
-    fl_print_format("  This parameter requires two values.%r", print->to, f_string_eol_s);
-    fl_print_format("  This parameter is not used for ignoring anything from the input pipe.%r", print->to, f_string_eol_s);
-    fl_print_format("  This parameter must be specified after a '%[%r%r%]'", print->to, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_content_s, print->set->notable);
-    fl_print_format(" parameter and this applies only to the Content represented by that specific '%[%r%r%]' parameter.%r", print->to, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_content_s, print->set->notable, f_string_eol_s);
+    fss_read_print_message_help_note(print, F_true);
 
     f_file_stream_flush(print->to);
     f_file_stream_unlock(print->to);
index 7b3a453..b58d184 100644 (file)
@@ -14,6 +14,7 @@ extern "C" {
   const f_string_static_t fss_read_format_code_long_0001_s = macro_f_string_static_t_initialize_1(FSS_READ_format_code_long_0001_s, 0, FSS_READ_format_code_long_0001_s_length);
   const f_string_static_t fss_read_format_code_human_0001_s = macro_f_string_static_t_initialize_1(FSS_READ_format_code_human_0001_s, 0, FSS_READ_format_code_human_0001_s_length);
   const f_string_static_t fss_read_format_code_machine_0001_s = macro_f_string_static_t_initialize_1(FSS_READ_format_code_machine_0001_s, 0, FSS_READ_format_code_machine_0001_s_length);
+  const f_string_static_t fss_read_format_code_name_0001_s = macro_f_string_static_t_initialize_1(FSS_READ_format_code_name_0001_s, 0, FSS_READ_format_code_name_0001_s_length);
 #endif // _di_fss_read_extended_s_
 
 #ifdef __cplusplus
index 29a8fef..291816e 100644 (file)
@@ -29,6 +29,7 @@ extern "C" {
   #define FSS_READ_format_code_long_0001_s    "fss-0001"
   #define FSS_READ_format_code_human_0001_s   "extended"
   #define FSS_READ_format_code_machine_0001_s "extended"
+  #define FSS_READ_format_code_name_0001_s    "Extended"
 
   #define FSS_READ_extended_standard_s_length 19
 
@@ -39,6 +40,7 @@ extern "C" {
   #define FSS_READ_format_code_long_0001_s_length    8
   #define FSS_READ_format_code_human_0001_s_length   8
   #define FSS_READ_format_code_machine_0001_s_length 8
+  #define FSS_READ_format_code_name_0001_s_length    8
 
   extern const f_string_static_t fss_read_extended_standard_s;
 
@@ -49,6 +51,7 @@ extern "C" {
   extern const f_string_static_t fss_read_format_code_long_0001_s;
   extern const f_string_static_t fss_read_format_code_human_0001_s;
   extern const f_string_static_t fss_read_format_code_machine_0001_s;
+  extern const f_string_static_t fss_read_format_code_name_0001_s;
 #endif // _di_fss_read_extended_s_
 
 #ifdef __cplusplus
index 9975144..cc763dd 100644 (file)
@@ -19,15 +19,11 @@ extern "C" {
 
     fll_program_print_help_usage(print, fss_read_extended_program_name_s, f_string_empty_s);
 
-    fss_read_print_message_help_pipe(print);
-
-    fss_read_print_message_help_end_next(print);
+    fss_read_print_message_help_note_header(print, fss_read_format_code_short_0001_s, fss_read_format_code_name_0001_s);
 
-    fl_print_format("%r  The FSS-0001 (Extended) specification does not support multi-line Content, therefore the parameter '%[%r%r%]'", print->to, f_string_eol_s, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_prepend_s, print->set->notable);
-    fl_print_format(" does nothing.%r%r", print->to, f_string_eol_s, f_string_eol_s);
+    fss_read_print_message_help_pipe(print);
 
-    fl_print_format("  This program does not use the parameter '%[%r%r%]', which therefore does nothing.%r", print->to, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_ignore_s, print->set->notable, f_string_eol_s);
-    fl_print_format("  This parameter requires two values.%r", print->to, f_string_eol_s);
+    fss_read_print_message_help_note(print, F_false);
 
     f_file_stream_flush(print->to);
     f_file_stream_unlock(print->to);
index d4bc37e..3d61566 100644 (file)
@@ -14,6 +14,7 @@ extern "C" {
   const f_string_static_t fss_read_format_code_long_0003_s = macro_f_string_static_t_initialize_1(FSS_READ_format_code_long_0003_s, 0, FSS_READ_format_code_long_0003_s_length);
   const f_string_static_t fss_read_format_code_human_0003_s = macro_f_string_static_t_initialize_1(FSS_READ_format_code_human_0003_s, 0, FSS_READ_format_code_human_0003_s_length);
   const f_string_static_t fss_read_format_code_machine_0003_s = macro_f_string_static_t_initialize_1(FSS_READ_format_code_machine_0003_s, 0, FSS_READ_format_code_machine_0003_s_length);
+  const f_string_static_t fss_read_format_code_name_0003_s = macro_f_string_static_t_initialize_1(FSS_READ_format_code_name_0003_s, 0, FSS_READ_format_code_name_0003_s_length);
 #endif // _di_fss_read_extended_list_s_
 
 #ifdef __cplusplus
index 7663d52..bb4eb49 100644 (file)
@@ -29,6 +29,7 @@ extern "C" {
   #define FSS_READ_format_code_long_0003_s    "fss-0003"
   #define FSS_READ_format_code_human_0003_s   "extended list"
   #define FSS_READ_format_code_machine_0003_s "extended_list"
+  #define FSS_READ_format_code_name_0003_s    "Extended List"
 
   #define FSS_READ_extended_list_standard_s_length 24
 
@@ -39,6 +40,7 @@ extern "C" {
   #define FSS_READ_format_code_long_0003_s_length    8
   #define FSS_READ_format_code_human_0003_s_length   13
   #define FSS_READ_format_code_machine_0003_s_length 13
+  #define FSS_READ_format_code_name_0003_s_length    13
 
   extern const f_string_static_t fss_read_extended_list_standard_s;
 
@@ -49,6 +51,7 @@ extern "C" {
   extern const f_string_static_t fss_read_format_code_long_0003_s;
   extern const f_string_static_t fss_read_format_code_human_0003_s;
   extern const f_string_static_t fss_read_format_code_machine_0003_s;
+  extern const f_string_static_t fss_read_format_code_name_0003_s;
 #endif // _di_fss_read_extended_list_s_
 
 #ifdef __cplusplus
index 7170b6e..5652239 100644 (file)
@@ -19,18 +19,11 @@ extern "C" {
 
     fll_program_print_help_usage(print, fss_read_extended_list_program_name_s, f_string_empty_s);
 
-    fss_read_print_message_help_pipe(print);
-
-    fss_read_print_message_help_end_next(print);
+    fss_read_print_message_help_note_header(print, fss_read_format_code_short_0003_s, fss_read_format_code_name_0003_s);
 
-    fl_print_format("%r  The FSS-0003 (Extended List) specification does not support quoted names, therefore the parameters '%[%r%r%]'", print->to, f_string_eol_s, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_single_s, print->set->notable);
-    fl_print_format(" and '%[%r%r%]' do nothing.%r%r", print->to, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_double_s, print->set->notable, f_string_eol_s, f_string_eol_s);
+    fss_read_print_message_help_pipe(print);
 
-    fl_print_format("  The parameter '%[%r%r%]' designates to not escape any valid nested Object or Content within some Content.%r", print->to, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_ignore_s, print->set->notable, f_string_eol_s);
-    fl_print_format("  This parameter requires two values.%r", print->to, f_string_eol_s);
-    fl_print_format("  This parameter is not used for ignoring anything from the input pipe.%r", print->to, f_string_eol_s);
-    fl_print_format("  This parameter must be specified after a '%[%r%r%]'", print->to, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_content_s, print->set->notable);
-    fl_print_format(" parameter and this applies only to the Content represented by that specific '%[%r%r%]' parameter.%r", print->to, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_content_s, print->set->notable, f_string_eol_s);
+    fss_read_print_message_help_note(print, F_true);
 
     f_file_stream_flush(print->to);
     f_file_stream_unlock(print->to);
index f45451f..e4c66e3 100644 (file)
@@ -116,6 +116,10 @@ extern "C" {
     if (main->program.parameters.array[fss_read_parameter_help_e].result & f_console_result_found_e) return;
     if (main->program.parameters.array[fss_read_parameter_version_e].result & f_console_result_found_e) return;
 
+    if (main->program.parameters.array[fss_read_parameter_strip_invalid_e].result & f_console_result_found_e) {
+      main->setting.flag |= fss_read_main_flag_strip_invalid_e;
+    }
+
     if ((main->program.parameters.array[fss_read_parameter_file_e].result & f_console_result_value_e) && main->program.parameters.array[fss_read_parameter_file_e].values.used) {
       if (main->program.parameters.array[fss_read_parameter_file_e].values.used > 1) {
         main->setting.state.status = F_status_set_error(F_parameter);
index 639c750..8d93568 100644 (file)
@@ -123,6 +123,33 @@ extern "C" {
   }; // enum
 #endif // _di_fss_read_print_flag_e_
 
+/**
+ * FSS Delimit Parameter enumerations.
+ *
+ * fss_read_delimit_mode_*_e:
+ *   - all:                    All delimits are to be applied.
+ *   - content:                Content are to have delimits applied.
+ *   - content_greater:        Content at this number or higher are to have delimits applied.
+ *   - content_greater_object: Objects and Content at this number or higher are to have delimits applied.
+ *   - content_lesser:         Content at this number or lower are to have delimits applied.
+ *   - content_lesser_object:  Objects and Content at this number or lower are to have delimits applied.
+ *   - content_object:         Objects and Content are to have delimits applied
+ *   - object:                 Objects arre to have delimits applied.
+ */
+#ifndef _di_fss_read_delimit_mode_e_
+  enum {
+    fss_read_delimit_mode_none_e = 0,
+    fss_read_delimit_mode_all_e,
+    fss_read_delimit_mode_content_e,
+    fss_read_delimit_mode_content_greater_e,
+    fss_read_delimit_mode_content_greater_object_e,
+    fss_read_delimit_mode_content_lesser_e,
+    fss_read_delimit_mode_content_lesser_object_e,
+    fss_read_delimit_mode_content_object_e,
+    fss_read_delimit_mode_object_e,
+  }; // enum
+#endif // _di_fss_read_delimit_mode_e_
+
 #ifdef __cplusplus
 } // extern "C"
 #endif
index 77e6753..3c65073 100644 (file)
@@ -23,6 +23,14 @@ extern "C" {
   const f_string_static_t fss_read_string_two_s = macro_f_string_static_t_initialize_1(FSS_READ_string_two_s, 0, FSS_READ_string_two_s_length);
 #endif // _di_fss_read_s_
 
+#ifndef _di_fss_read_delimit_mode_s_
+  const f_string_static_t fss_read_delimit_mode_name_none_s = macro_f_string_static_t_initialize_1(FSS_READ_delimit_mode_name_none_s, 0, FSS_READ_delimit_mode_name_none_s_length);
+  const f_string_static_t fss_read_delimit_mode_name_all_s = macro_f_string_static_t_initialize_1(FSS_READ_delimit_mode_name_all_s, 0, FSS_READ_delimit_mode_name_all_s_length);
+  const f_string_static_t fss_read_delimit_mode_name_object_s = macro_f_string_static_t_initialize_1(FSS_READ_delimit_mode_name_object_s, 0, FSS_READ_delimit_mode_name_object_s_length);
+  const f_string_static_t fss_read_delimit_mode_name_greater_s = macro_f_string_static_t_initialize_1(FSS_READ_delimit_mode_name_greater_s, 0, FSS_READ_delimit_mode_name_greater_s_length);
+  const f_string_static_t fss_read_delimit_mode_name_lesser_s = macro_f_string_static_t_initialize_1(FSS_READ_delimit_mode_name_lesser_s, 0, FSS_READ_delimit_mode_name_lesser_s_length);
+#endif // _di_fss_read_delimit_mode_s_
+
 #ifndef _di_fss_read_parameter_s_
   const f_string_static_t fss_read_short_at_s = macro_f_string_static_t_initialize_1(FSS_READ_short_at_s, 0, FSS_READ_short_at_s_length);
   const f_string_static_t fss_read_short_content_s = macro_f_string_static_t_initialize_1(FSS_READ_short_content_s, 0, FSS_READ_short_content_s_length);
index df09115..08c4dd7 100644 (file)
@@ -89,7 +89,7 @@ extern "C" {
 #endif // _di_fss_read_pipe_s_
 
 /**
- * A collection of static strings associated with FSS Payload Write.
+ * A collection of static strings associated with FSS Read.
  */
 #ifndef _di_fss_read_s_
   #define FSS_READ_string_two_s "two"
@@ -99,6 +99,39 @@ extern "C" {
   extern const f_string_static_t fss_read_string_two_s;
 #endif // _di_fss_read_s_
 
+/**
+ * FSS Delimit Parameter strings.
+ *
+ * fss_read_delimit_mode_*:
+ *   - all:                    All delimits are to be aplied.
+ *   - content:                Content are to have delimits applied.
+ *   - content_greater:        Content at this number or higher are to have delimits applied.
+ *   - content_greater_object: Objects and Content at this number or higher are to have delimits applied.
+ *   - content_lesser:         Content at this number or lower are to have delimits applied.
+ *   - content_lesser_object:  Objects and Content at this number or lower are to have delimits applied.
+ *   - content_object:         Objects and Content are to have delimits applied
+ *   - object:                 Objects arre to have delimits applied.
+ */
+#ifndef _di_fss_read_delimit_mode_s_
+  #define FSS_READ_delimit_mode_name_none_s    "none"
+  #define FSS_READ_delimit_mode_name_all_s     "all"
+  #define FSS_READ_delimit_mode_name_object_s  "object"
+  #define FSS_READ_delimit_mode_name_greater_s "+"
+  #define FSS_READ_delimit_mode_name_lesser_s  "-"
+
+  #define FSS_READ_delimit_mode_name_none_s_length    4
+  #define FSS_READ_delimit_mode_name_all_s_length     3
+  #define FSS_READ_delimit_mode_name_object_s_length  6
+  #define FSS_READ_delimit_mode_name_greater_s_length 1
+  #define FSS_READ_delimit_mode_name_lesser_s_length  1
+
+  extern const f_string_static_t fss_read_delimit_mode_name_none_s;
+  extern const f_string_static_t fss_read_delimit_mode_name_all_s;
+  extern const f_string_static_t fss_read_delimit_mode_name_object_s;
+  extern const f_string_static_t fss_read_delimit_mode_name_greater_s;
+  extern const f_string_static_t fss_read_delimit_mode_name_lesser_s;
+#endif // _di_fss_read_delimit_mode_s_
+
 /**
  * The main program parameters.
  */
@@ -150,7 +183,7 @@ extern "C" {
 
   #define FSS_READ_long_at_s_length       2
   #define FSS_READ_long_content_s_length  7
-  #define FSS_READ_long_columns_s_length  8
+  #define FSS_READ_long_columns_s_length  7
   #define FSS_READ_long_delimit_s_length  7
   #define FSS_READ_long_depth_s_length    5
   #define FSS_READ_long_empty_s_length    5
index 1111539..3647488 100644 (file)
@@ -42,18 +42,22 @@ extern "C" {
 
     fss_read_print_message_help(print);
 
-    fll_program_print_help_option(print, fss_read_short_as_s, fss_read_long_as_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "Designate the supported format to write as.");
+    fll_program_print_help_option(print, fss_read_short_as_s, fss_read_long_as_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "Designate the supported format to read as.");
 
     f_print_dynamic_raw(f_string_eol_s, print->to);
 
     fll_program_print_help_usage(print, fss_read_program_name_s, f_string_empty_s);
 
+    fss_read_print_message_help_note_header(print, f_string_empty_s, f_string_empty_s);
+
     fss_read_print_message_help_pipe(print);
 
-    fss_read_print_message_help_end_next(print);
+    fss_read_print_message_help_note(print, F_false);
 
     f_print_dynamic_raw(f_string_eol_s, print->to);
 
+    // @todo everything below needs to be reviewed and updated as appropriate.
+
     fl_print_format("  The '%[%r%r%]' parameter supports the following standards with the specified possible case-sensitive values:%r", print->to, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_as_s, print->set->notable, f_string_eol_s);
 
     // FSS-0000 (Basic)
index cac0653..6af6032 100644 (file)
@@ -13,42 +13,131 @@ extern "C" {
 
     f_print_dynamic_raw(f_string_eol_s, print->to);
 
-    fll_program_print_help_option(print, fss_read_short_backtick_s, fss_read_long_backtick_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "    Use backticks to quote.");
-    fll_program_print_help_option(print, fss_read_short_content_s, fss_read_long_content_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "     The Content to write.");
-    fll_program_print_help_option(print, fss_read_short_content_end_s, fss_read_long_content_end_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, " Write the end of Content characters.");
-    fll_program_print_help_option(print, fss_read_short_content_next_s, fss_read_long_content_next_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "Write the next Content characters (separates multi-Content apart).");
-    fll_program_print_help_option(print, fss_read_short_double_s, fss_read_long_double_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "      Use double quotes (default).");
-    fll_program_print_help_option(print, fss_read_short_file_s, fss_read_long_file_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "        Specify a file to send data to.");
-    fll_program_print_help_option(print, fss_read_short_ignore_s, fss_read_long_ignore_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "      Ignore a given range within a Content.");
-    fll_program_print_help_option(print, fss_read_short_object_s, fss_read_long_object_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "      The Object to write.");
-    fll_program_print_help_option(print, fss_read_short_object_open_s, fss_read_long_object_open_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, " Write the open Object characters.");
-    fll_program_print_help_option(print, fss_read_short_partial_s, fss_read_long_partial_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "     Do not write a complete Object and Content set.");
-    fll_program_print_help_option(print, fss_read_short_prepend_s, fss_read_long_prepend_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "     Prepend the given white space characters to the start of each multi-line Content.");
-    fll_program_print_help_option(print, fss_read_short_single_s, fss_read_long_single_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "      Use single quotes.");
-    fll_program_print_help_option(print, fss_read_short_trim_s, fss_read_long_trim_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "        Trim Object names.");
+    fll_program_print_help_option(print, fss_read_short_at_s, fss_read_long_at_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "      Select Object at this numeric index.");
+    fll_program_print_help_option(print, fss_read_short_content_s, fss_read_long_content_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, " Print the Content (default).");
+    fll_program_print_help_option(print, fss_read_short_columns_s, fss_read_long_columns_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, " Print the total number of columns.");
+    fll_program_print_help_option(print, fss_read_short_delimit_s, fss_read_long_delimit_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, " Designate how to handle applying delimits.");
+    fll_program_print_help_option(print, fss_read_short_depth_s, fss_read_long_depth_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "   Select Object at this numeric depth.");
+    fll_program_print_help_option(print, fss_read_short_empty_s, fss_read_long_empty_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "   Include empty Content when processing.");
+    fll_program_print_help_option(print, fss_read_short_line_s, fss_read_long_line_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "    Print only the Content at the given line.");
+    fll_program_print_help_option(print, fss_read_short_name_s, fss_read_long_name_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "    Select Object with this name.");
+    fll_program_print_help_option(print, fss_read_short_object_s, fss_read_long_object_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "  Print the Object.");
+    fll_program_print_help_option(print, fss_read_short_pipe_s, fss_read_long_pipe_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "    Print using the special pipe format.");
+    fll_program_print_help_option(print, fss_read_short_original_s, fss_read_long_original_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "Print with the original quotes and escapes.");
+    fll_program_print_help_option(print, fss_read_short_select_s, fss_read_long_select_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "  Select sub-Content at this index.");
+    fll_program_print_help_option(print, fss_read_short_total_s, fss_read_long_total_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "   Print the total number of lines.");
+    fll_program_print_help_option(print, fss_read_short_trim_s, fss_read_long_trim_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "    Trim Object names on select or print.");
   }
 #endif // _di_fss_read_print_message_help_
 
-#ifndef _di_fss_read_print_message_help_end_next_
-  void fss_read_print_message_help_end_next(fl_print_t * const print) {
+#ifndef _di_fss_read_print_message_help_note_header_
+  void fss_read_print_message_help_note_header(fl_print_t * const print, const f_string_static_t number, const f_string_static_t name) {
 
     if (!print) return;
 
-    fl_print_format("  The '%[%r%r%]',", print->to, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_object_open_s, print->set->notable);
-    fl_print_format(" '%[%r%r%]', and", print->to, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_content_next_s, print->set->notable);
-    fl_print_format(" '%[%r%r%]' help facilitate writing the designated data for when using", print->to, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_content_end_s, print->set->notable);
-    fl_print_format(" '%[%r%r%]'.%r", print->to, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_partial_s, print->set->notable, f_string_eol_s);
+    fl_print_format(" %[Notes:%]%r  This program will print the data associated with the given Object and Content based on the FSS", print->to, f_string_eol_s);
 
-    fl_print_format("  These may also be used when there is no '%[%r%r%]' or", print->to, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_object_s, print->set->notable);
-    fl_print_format(" '%[%r%r%]' specified to only print the designated data.%r", print->to, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_content_s, print->set->notable, f_string_eol_s);
+    if (number.used) {
+      fl_print_format("-%Q", print->to, number);
+
+      if (name.used) {
+        fl_print_format(" (%Q)", print->to, name);
+      }
+    }
+
+    fl_print_format(" standard.%r", print->to, f_string_eol_s);
+  }
+#endif // _di_fss_read_print_message_help_note_header_
+
+#ifndef _di_fss_read_print_message_help_note_
+  void fss_read_print_message_help_note(fl_print_t * const print, const uint8_t new_line) {
+
+    if (!print) return;
+
+    f_color_set_context_t * const set = print->set;
+
+    // TODO: this is just copied over and needs to be broken up somehow.
+    fl_print_format("%r  All numeric positions (indexes) start at 0 instead of 1.%r", print->to, f_string_eol_s, f_string_eol_s);
+    fl_print_format("  For example, a file of 17 lines would range from 0 to 16.%r%r", print->to, f_string_eol_s, f_string_eol_s);
+
+    fl_print_format("  When using the %[%r%r%] option, an order of operations is enforced on the parameters.%r", print->to, set->notable, f_console_symbol_long_normal_s, fss_read_long_depth_s, set->notable, f_string_eol_s);
+
+    fl_print_format("  When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:%r", print->to, f_string_eol_s);
+
+    fl_print_format("    %[%r%r%]: An Object index at the specified depth.%r", print->to, set->notable, f_console_symbol_long_normal_s, fss_read_long_at_s, set->notable, f_string_eol_s);
+    fl_print_format("    %[%r%r%]: A new depth within the specified depth, indexed from the root.%r", print->to, set->notable, f_console_symbol_long_normal_s, fss_read_long_depth_s, set->notable, f_string_eol_s);
+    fl_print_format("    %[%r%r%]: An Object name at the specified depth.%r%r", print->to, set->notable, f_console_symbol_long_normal_s, fss_read_long_name_s, set->notable, f_string_eol_s, f_string_eol_s);
+
+    fl_print_format("  The parameter %[%r%r%] must be in numeric order, but values in between may be skipped.%r", print->to, set->notable, f_console_symbol_long_normal_s, fss_read_long_depth_s, set->notable, f_string_eol_s);
+    fl_print_format("    ('-d 0 -a 1 -d 2 -a 2' would specify index 1 at depth 0, any index at depth 1, and index 2 at depth 2.)%r", print->to, f_string_eol_s);
+    fl_print_format("    ('-d 2 -a 1 -d 0 -a 2' would be invalid because depth 2 is before depth 1.)%r%r", print->to, f_string_eol_s, f_string_eol_s);
+
+    fl_print_format("  The parameter %[%r%r%] selects a Content column.%r%r", print->to, set->notable, f_console_symbol_long_normal_s, fss_read_long_select_s, set->notable, f_string_eol_s, f_string_eol_s);
+
+    fl_print_format("  Specify both %[%r%r%]", print->to, set->notable, f_console_symbol_long_normal_s, fss_read_long_object_s, set->notable);
+    fl_print_format(" and the %[%r%r%] parameters to get the total objects.%r%r", print->to, set->notable, f_console_symbol_long_normal_s, fss_read_long_total_s, set->notable, f_string_eol_s, f_string_eol_s);
+
+    fl_print_format("  When both %[%r%r%]", print->to, set->notable, f_console_symbol_long_normal_s, fss_read_long_at_s, set->notable);
+    fl_print_format(" and %[%r%r%] parameters are specified (at the same depth),", print->to, set->notable, f_console_symbol_long_normal_s, fss_read_long_name_s, set->notable);
+    fl_print_format(" the %[%r%r%] parameter value will be treated as a position relative to the specified", print->to, set->notable, f_console_symbol_long_normal_s, fss_read_long_at_s, set->notable);
+    fl_print_format(" %[%r%r%] parameter value.%r%r", print->to, set->notable, f_console_symbol_long_normal_s, fss_read_long_name_s, set->notable, f_string_eol_s, f_string_eol_s);
+
+    fl_print_format("  This program may support parameters, such as %[%r%r%]", print->to, set->notable, f_console_symbol_long_normal_s, fss_read_long_depth_s, set->notable);
+    fl_print_format(" or %[%r%r%], even if not supported by the standard.%r", print->to, set->notable, f_console_symbol_long_normal_s, fss_read_long_select_s, set->notable, f_string_eol_s);
+    fl_print_format("  This is done to help ensure consistency for scripting.%r%r", print->to, f_string_eol_s, f_string_eol_s);
+
+    fl_print_format("  For parameters like %[%r%r%],", print->to, set->notable, f_console_symbol_long_normal_s, fss_read_long_depth_s, set->notable);
+    fl_print_format(" if the standard doesn't support nested Content, then only a depth of 0 would be valid.%r", print->to, f_string_eol_s);
+
+    fl_print_format("  For parameters like %[%r%r%],", print->to, set->notable, f_console_symbol_long_normal_s, fss_read_long_select_s, set->notable);
+    fl_print_format(" if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.%r%r", print->to, f_string_eol_s, f_string_eol_s);
+
+    fl_print_format("  The parameter %[%r%r%]", print->to, set->notable, f_console_symbol_long_normal_s, fss_read_long_trim_s, set->notable);
+    fl_print_format(" will remove leading and trailing white spaces when selecting objects or when printing objects.%r%r", print->to, f_string_eol_s, f_string_eol_s);
+
+    fl_print_format("  When specifying both the %[%r%r%]", print->to, set->notable, f_console_symbol_long_normal_s, fss_read_long_object_s, set->notable);
+    fl_print_format(" parameter and the %[%r%r%] parameter, the entire Object and Content are printed, including the formatting.%r", print->to, set->notable, f_console_symbol_long_normal_s, fss_read_long_content_s, set->notable, f_string_eol_s);
+    fl_print_format("  Both the Object and Content printed are already escaped.%r", print->to, f_string_eol_s);
+
+    if (new_line == 0x2) {
+      fl_print_format("  Depending on the standard both the Object and Content are separated by either a New Line character '\\n' (U+000A) or a space.%r%r", print->to, f_string_eol_s, f_string_eol_s);
+    }
+    else if (new_line) {
+      fl_print_format("  Both the Object and Content are separated by a New Line character '\\n' (U+000A).%r%r", print->to, f_string_eol_s, f_string_eol_s);
+    }
+    else {
+      fl_print_format("  Both the Object and Content are separated by a space.%r%r", print->to, f_string_eol_s, f_string_eol_s);
+    }
+
+    fl_print_format("  The parameter %[%r%r%] accepts the following:%r", print->to, set->notable, f_console_symbol_long_normal_s, fss_read_long_delimit_s, set->notable, f_string_eol_s);
+    fl_print_format("  - %[%r%]: Do not apply delimits.%r", print->to, set->notable, fss_read_delimit_mode_name_none_s, set->notable, f_string_eol_s);
+    fl_print_format("  - %[%r%]: (default) Apply all delimits.%r", print->to, set->notable, fss_read_delimit_mode_name_all_s, set->notable, f_string_eol_s);
+    fl_print_format("  - %[%r%]: Apply delimits for Objects.%r", print->to, set->notable, fss_read_delimit_mode_name_object_s, set->notable, f_string_eol_s); // @todo this isn't in embedded_list print, confirm/deny if this is intended or not.
+    fl_print_format("  - A number, 0 or greater: apply delimits for Content at the specified depth.%r", print->to, f_string_eol_s);
+    fl_print_format("  - A number, 0 or greater, followed by a %[%r%]: (such as '1+') apply delimits for Content at the specified depth and any greater depth (numerically).%r", print->to, set->notable, fss_read_delimit_mode_name_greater_s, set->notable, f_string_eol_s, f_string_eol_s);
+    fl_print_format("  - A number, 0 or lesser, followed by a %[%r%]: (such as '1-') apply delimits for Content at the specified depth and any lesser depth (numerically).%r%r", print->to, set->notable, fss_read_delimit_mode_name_lesser_s, set->notable, f_string_eol_s, f_string_eol_s);
+
+    fl_print_format("  The %[%r%r%] parameter may be specified multiple times to customize the delimit behavior.%r", print->to, set->notable, f_console_symbol_long_normal_s, fss_read_long_delimit_s, set->notable, f_string_eol_s);
+
+    fl_print_format("  The %[%r%r%]", print->to, set->notable, f_console_symbol_long_normal_s, fss_read_long_delimit_s, set->notable);
+    fl_print_format(" values %[%r%]", print->to, set->notable, fss_read_delimit_mode_name_none_s, set->notable);
+    fl_print_format(" and %[%r%],", print->to, set->notable, fss_read_delimit_mode_name_all_s, set->notable);
+    fl_print_format(" overrule all other delimit values.%r%r", print->to, f_string_eol_s, f_string_eol_s);
+
+    fl_print_format("  The parameters %[%r%r%]", print->to, set->notable, f_console_symbol_long_normal_s, fss_read_long_columns_s, set->notable);
+    fl_print_format(" and %[%r%r%]", print->to, set->notable, f_console_symbol_long_normal_s, fss_read_long_select_s, set->notable);
+    fl_print_format(" refer to a Content column.%r", print->to, f_string_eol_s);
+    fl_print_format("  The word 'column' is being loosely defined to refer to a specific Content.%r", print->to, f_string_eol_s);
+    fl_print_format("  This is not to be confused with a depth.%r", print->to, f_string_eol_s);
   }
-#endif // _di_fss_read_print_message_help_end_next_
+#endif // _di_fss_read_print_message_help_note_
 
 #ifndef _di_fss_read_print_message_help_pipe_
   void fss_read_print_message_help_pipe(fl_print_t * const print) {
 
     if (!print) return;
 
+    // @todo there is a pipe input format but this documentation is for write rather than read, update this as appropriate or remove function entirely.
     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);
     fl_print_format("  The pipe uses the Form Feed character '%[\\f%]' (%[U+000C%]) to designate the end of the last Content.%r", print->to, print->set->notable, print->set->notable, print->set->notable, print->set->notable, f_string_eol_s);
     fl_print_format("  The pipe uses the Vertical Line character '%[\\v%]' (%[U+000B%]) is used to ignore a Content range (use this both before and after the range).%r", print->to, print->set->notable, print->set->notable, print->set->notable, print->set->notable, f_string_eol_s);
index 587e7e0..6dde2e4 100644 (file)
@@ -31,18 +31,40 @@ extern "C" {
 #endif // _di_fss_read_print_message_help_
 
 /**
- * Print standard parts of the help regarding Object End, Content Next, and Content End usage.
+ * Print standard parts of the help regarding the notes header.
  *
  * This is expected to be called as part of the help printing and does not perform any locking.
  *
  * @param print
  *   The output structure to print to.
+ * @param number
+ *   The FSS standard number, such as "0000".
+ * @param name
+ *   The FSS standard name, such as "Basic".
  *
  *   This does not alter print.custom.setting.state.status.
  */
-#ifndef _di_fss_read_print_message_help_end_next_
-  extern void fss_read_print_message_help_end_next(fl_print_t * const print);
-#endif // _di_fss_read_print_message_help_end_next_
+#ifndef _di_fss_read_print_message_help_note_header_
+  extern void fss_read_print_message_help_note_header(fl_print_t * const print, const f_string_static_t number, const f_string_static_t name);
+#endif // _di_fss_read_print_message_help_note_header_
+
+/**
+ * Print standard parts of the help regarding notes.
+ *
+ * This is expected to be called as part of the help printing and does not perform any locking.
+ *
+ * @param print
+ *   The output structure to print to.
+ *
+ *   This does not alter print.custom.setting.state.status.
+ * @param new_line
+ *   If 0x0 (F_false), then print help regarding space separating Object and Content.
+ *   If 0x1 (F_true), then print help regarding new line separating Object and Content.
+ *   If 0x2, then print both separation types (intended for use by the general fss_read program).
+ */
+#ifndef _di_fss_read_print_message_help_note_
+  extern void fss_read_print_message_help_note(fl_print_t * const print, const uint8_t new_line);
+#endif // _di_fss_read_print_message_help_note_
 
 /**
  * Print standard parts of the help regarding pipe usage.
index eafdb0c..b5fd25d 100644 (file)
@@ -16,6 +16,7 @@ extern "C" {
   const f_string_static_t fss_read_format_code_long_000e_s = macro_f_string_static_t_initialize_1(FSS_READ_format_code_long_000e_s, 0, FSS_READ_format_code_long_000e_s_length);
   const f_string_static_t fss_read_format_code_human_000e_s = macro_f_string_static_t_initialize_1(FSS_READ_format_code_human_000e_s, 0, FSS_READ_format_code_human_000e_s_length);
   const f_string_static_t fss_read_format_code_machine_000e_s = macro_f_string_static_t_initialize_1(FSS_READ_format_code_machine_000e_s, 0, FSS_READ_format_code_machine_000e_s_length);
+  const f_string_static_t fss_read_format_code_name_000e_s = macro_f_string_static_t_initialize_1(FSS_READ_format_code_name_000e_s, 0, FSS_READ_format_code_name_000e_s_length);
 #endif // _di_fss_read_payload_s_
 
 #ifdef __cplusplus
index 7b762e8..bf3fe87 100644 (file)
@@ -31,6 +31,7 @@ extern "C" {
   #define FSS_READ_format_code_long_000e_s    "fss-000e"
   #define FSS_READ_format_code_human_000e_s   "payload"
   #define FSS_READ_format_code_machine_000e_s "payload"
+  #define FSS_READ_format_code_name_000e_s    "Payload"
 
   #define FSS_READ_payload_s_length 7
 
@@ -43,6 +44,7 @@ extern "C" {
   #define FSS_READ_format_code_long_000e_s_length    8
   #define FSS_READ_format_code_human_000e_s_length   7
   #define FSS_READ_format_code_machine_000e_s_length 7
+  #define FSS_READ_format_code_name_000e_s_length    7
 
   extern const f_string_static_t fss_read_payload_s;
 
@@ -55,6 +57,7 @@ extern "C" {
   extern const f_string_static_t fss_read_format_code_long_000e_s;
   extern const f_string_static_t fss_read_format_code_human_000e_s;
   extern const f_string_static_t fss_read_format_code_machine_000e_s;
+  extern const f_string_static_t fss_read_format_code_name_000e_s;
 #endif // _di_fss_read_payload_s_
 
 #ifdef __cplusplus
index 0e83576..3f0cdff 100644 (file)
@@ -37,7 +37,13 @@ extern "C" {
 
     fss_read_print_message_help_pipe(print);
 
-    fss_read_print_message_help_end_next(print);
+    fss_read_print_message_help_note(print, F_true);
+
+    // @todo use these stirngs in place of the format prints below.
+    //As an exceptional case, a --depth of 1 applies only to the explicit Object of 'header'.
+    //Content at this depth is processed as FSS-0001 Extended.
+    //
+    //The Content of the explicit Object of 'payload' will not contain any Content close pipe control codes when using --pipe.
 
     fl_print_format("%r  The FSS-000E (Payload) specification does not support quoted names, therefore the parameters '%[%r%r%]'", print->to, f_string_eol_s, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_single_s, print->set->notable);
     fl_print_format(" and '%[%r%r%]' do nothing.%r%r", print->to, print->set->notable, f_console_symbol_long_normal_s, fss_read_long_double_s, print->set->notable, f_string_eol_s, f_string_eol_s);
index 03d3bbb..1bcc56e 100644 (file)
@@ -6,7 +6,7 @@ fss_basic_list_read \- Read data in \fBFSS-0003 (Basic List)\fR format.
 [\fI\,OPTIONS\/\fR] [\fI\,FILENAMES\/\fR]
 .SH DESCRIPTION
 .PP
-This program will print the Content associated with the given Object and Content main based on the \fBFSS-0002 Basic List\fR standard.
+This program will print the data associated with the given Object and Content based on the \fBFSS-0002 Basic List\fR standard.
 
 All numeric positions (indexes) start at 0 instead of 1.
 For example, a file of 17 lines would range from 0 to 16.
index d5710d7..402466e 100644 (file)
@@ -6,7 +6,7 @@ fss_basic_read \- Read data in \fBFSS-0000 (Basic)\fR format.
 [\fI\,OPTIONS\/\fR] [\fI\,FILENAMES\/\fR]
 .SH DESCRIPTION
 .PP
-This program will print the Content associated with the given Object and Content main based on the \fBFSS-0000 Basic\fR standard.
+This program will print the data associated with the given Object and Content based on the \fBFSS-0000 Basic\fR standard.
 
 All numeric positions (indexes) start at 0 instead of 1.
 For example, a file of 17 lines would range from 0 to 16.
index adae22d..11f3f94 100644 (file)
@@ -6,7 +6,7 @@ fss_embedded_list_read \- Read data in \fBFSS-0008 (Embedded List)\fR format.
 [\fI\,OPTIONS\/\fR] [\fI\,FILENAMES\/\fR]
 .SH DESCRIPTION
 .PP
-This program will print the Content associated with the given Object and Content main based on the \fBFSS-0008 Embedded List\fR standard.
+This program will print the data associated with the given Object and Content based on the \fBFSS-0008 Embedded List\fR standard.
 
 All numeric positions (indexes) start at 0 instead of 1.
 For example, a file of 17 lines would range from 0 to 16.
index d30cf34..68231d1 100644 (file)
@@ -6,7 +6,7 @@ fss_extended_list_read \- Read data in \fBFSS-0003 (Extended List)\fR format.
 [\fI\,OPTIONS\/\fR] [\fI\,FILENAMES\/\fR]
 .SH DESCRIPTION
 .PP
-This program will print the Content associated with the given Object and Content main based on the \fBFSS-0003 Extended List\fR standard.
+This program will print the data associated with the given Object and Content based on the \fBFSS-0003 Extended List\fR standard.
 
 All numeric positions (indexes) start at 0 instead of 1.
 For example, a file of 17 lines would range from 0 to 16.
index 73887e9..280c638 100644 (file)
@@ -6,7 +6,7 @@ fss_extended_read \- Read data in \fBFSS-0001 (Extended)\fR format.
 [\fI\,OPTIONS\/\fR] [\fI\,FILENAMES\/\fR]
 .SH DESCRIPTION
 .PP
-This program will print the Content associated with the given Object and Content main based on the \fBFSS-0001 Extended\fR standard.
+This program will print the data associated with the given Object and Content based on the \fBFSS-0001 Extended\fR standard.
 
 All numeric positions (indexes) start at 0 instead of 1.
 For example, a file of 17 lines would range from 0 to 16.
index 4b72316..4a8d359 100644 (file)
@@ -6,7 +6,7 @@ fss_payload_read \- Read data in \fBFSS-000E (Payload)\fR format.
 [\fI\,OPTIONS\/\fR] [\fI\,FILENAMES\/\fR]
 .SH DESCRIPTION
 .PP
-This program will print the Content associated with the given Object and Content main based on the \fBFSS-000E Payload\fR standard.
+This program will print the data associated with the given Object and Content based on the \fBFSS-000E Payload\fR standard.
 
 All numeric positions (indexes) start at 0 instead of 1.
 For example, a file of 17 lines would range from 0 to 16.
index 36b136d..5d2e88d 100644 (file)
@@ -14,6 +14,7 @@ extern "C" {
   const f_string_static_t fss_write_format_code_long_0000_s = macro_f_string_static_t_initialize_1(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_1(FSS_WRITE_format_code_human_0000_s, 0, FSS_WRITE_format_code_human_0000_s_length);
   const f_string_static_t fss_write_format_code_machine_0000_s = macro_f_string_static_t_initialize_1(FSS_WRITE_format_code_machine_0000_s, 0, FSS_WRITE_format_code_machine_0000_s_length);
+  const f_string_static_t fss_write_format_code_name_0000_s = macro_f_string_static_t_initialize_1(FSS_WRITE_format_code_name_0000_s, 0, FSS_WRITE_format_code_name_0000_s_length);
 #endif // _di_fss_write_basic_s_
 
 #ifdef __cplusplus
index 0fa359e..64109cd 100644 (file)
@@ -29,6 +29,7 @@ extern "C" {
   #define FSS_WRITE_format_code_long_0000_s    "fss-0000"
   #define FSS_WRITE_format_code_human_0000_s   "basic"
   #define FSS_WRITE_format_code_machine_0000_s "basic"
+  #define FSS_WRITE_format_code_name_0000_s    "Basic"
 
   #define FSS_WRITE_basic_standard_s_length 16
 
@@ -39,6 +40,7 @@ extern "C" {
   #define FSS_WRITE_format_code_long_0000_s_length    8
   #define FSS_WRITE_format_code_human_0000_s_length   5
   #define FSS_WRITE_format_code_machine_0000_s_length 5
+  #define FSS_WRITE_format_code_name_0000_s_length    5
 
   extern const f_string_static_t fss_write_basic_standard_s;
 
@@ -49,6 +51,7 @@ extern "C" {
   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;
   extern const f_string_static_t fss_write_format_code_machine_0000_s;
+  extern const f_string_static_t fss_write_format_code_name_0000_s;
 #endif // _di_fss_write_basic_s_
 
 #ifdef __cplusplus
index 5b1f07e..1af2e05 100644 (file)
@@ -14,6 +14,7 @@ extern "C" {
   const f_string_static_t fss_write_format_code_long_0002_s = macro_f_string_static_t_initialize_1(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_1(FSS_WRITE_format_code_human_0002_s, 0, FSS_WRITE_format_code_human_0002_s_length);
   const f_string_static_t fss_write_format_code_machine_0002_s = macro_f_string_static_t_initialize_1(FSS_WRITE_format_code_machine_0002_s, 0, FSS_WRITE_format_code_machine_0002_s_length);
+  const f_string_static_t fss_write_format_code_name_0002_s = macro_f_string_static_t_initialize_1(FSS_WRITE_format_code_name_0002_s, 0, FSS_WRITE_format_code_name_0002_s_length);
 #endif // _di_fss_write_basic_list_s_
 
 #ifdef __cplusplus
index 3afef3f..47c45d4 100644 (file)
@@ -29,6 +29,7 @@ extern "C" {
   #define FSS_WRITE_format_code_long_0002_s    "fss-0002"
   #define FSS_WRITE_format_code_human_0002_s   "basic list"
   #define FSS_WRITE_format_code_machine_0002_s "basic_list"
+  #define FSS_WRITE_format_code_name_0002_s    "Basic List"
 
   #define FSS_WRITE_basic_list_standard_s_length 21
 
@@ -39,6 +40,7 @@ extern "C" {
   #define FSS_WRITE_format_code_long_0002_s_length    8
   #define FSS_WRITE_format_code_human_0002_s_length   10
   #define FSS_WRITE_format_code_machine_0002_s_length 10
+  #define FSS_WRITE_format_code_name_0002_s_length    10
 
   extern const f_string_static_t fss_write_basic_list_standard_s;
 
@@ -49,6 +51,7 @@ extern "C" {
   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;
   extern const f_string_static_t fss_write_format_code_machine_0002_s;
+  extern const f_string_static_t fss_write_format_code_name_0002_s;
 #endif // _di_fss_write_basic_list_s_
 
 #ifdef __cplusplus
index 05b4b64..490ae78 100644 (file)
@@ -14,6 +14,7 @@ extern "C" {
   const f_string_static_t fss_write_format_code_long_0008_s = macro_f_string_static_t_initialize_1(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_1(FSS_WRITE_format_code_human_0008_s, 0, FSS_WRITE_format_code_human_0008_s_length);
   const f_string_static_t fss_write_format_code_machine_0008_s = macro_f_string_static_t_initialize_1(FSS_WRITE_format_code_machine_0008_s, 0, FSS_WRITE_format_code_machine_0008_s_length);
+  const f_string_static_t fss_write_format_code_name_0008_s = macro_f_string_static_t_initialize_1(FSS_WRITE_format_code_name_0008_s, 0, FSS_WRITE_format_code_name_0008_s_length);
 #endif // _di_fss_write_embedded_list_s_
 
 #ifdef __cplusplus
index cde14a9..db576bc 100644 (file)
@@ -29,6 +29,7 @@ extern "C" {
   #define FSS_WRITE_format_code_long_0008_s    "fss-0008"
   #define FSS_WRITE_format_code_human_0008_s   "embedded list"
   #define FSS_WRITE_format_code_machine_0008_s "embedded_list"
+  #define FSS_WRITE_format_code_name_0008_s    "Embedded List"
 
   #define FSS_WRITE_embedded_list_standard_s_length 24
 
@@ -39,6 +40,7 @@ extern "C" {
   #define FSS_WRITE_format_code_long_0008_s_length    8
   #define FSS_WRITE_format_code_human_0008_s_length   13
   #define FSS_WRITE_format_code_machine_0008_s_length 13
+  #define FSS_WRITE_format_code_name_0008_s_length 13
 
   extern const f_string_static_t fss_write_embedded_list_standard_s;
 
@@ -49,6 +51,7 @@ extern "C" {
   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;
   extern const f_string_static_t fss_write_format_code_machine_0008_s;
+  extern const f_string_static_t fss_write_format_code_name_0008_s;
 #endif // _di_fss_write_embedded_list_s_
 
 #ifdef __cplusplus
index e77fc7d..5f0e0dd 100644 (file)
@@ -14,6 +14,7 @@ extern "C" {
   const f_string_static_t fss_write_format_code_long_0001_s = macro_f_string_static_t_initialize_1(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_1(FSS_WRITE_format_code_human_0001_s, 0, FSS_WRITE_format_code_human_0001_s_length);
   const f_string_static_t fss_write_format_code_machine_0001_s = macro_f_string_static_t_initialize_1(FSS_WRITE_format_code_machine_0001_s, 0, FSS_WRITE_format_code_machine_0001_s_length);
+  const f_string_static_t fss_write_format_code_name_0001_s = macro_f_string_static_t_initialize_1(FSS_WRITE_format_code_name_0001_s, 0, FSS_WRITE_format_code_name_0001_s_length);
 #endif // _di_fss_write_extended_s_
 
 #ifdef __cplusplus
index 4fbcce9..90a63f2 100644 (file)
@@ -29,6 +29,7 @@ extern "C" {
   #define FSS_WRITE_format_code_long_0001_s    "fss-0001"
   #define FSS_WRITE_format_code_human_0001_s   "extended"
   #define FSS_WRITE_format_code_machine_0001_s "extended"
+  #define FSS_WRITE_format_code_name_0001_s    "Extended"
 
   #define FSS_WRITE_extended_standard_s_length 19
 
@@ -39,6 +40,7 @@ extern "C" {
   #define FSS_WRITE_format_code_long_0001_s_length    8
   #define FSS_WRITE_format_code_human_0001_s_length   8
   #define FSS_WRITE_format_code_machine_0001_s_length 8
+  #define FSS_WRITE_format_code_name_0001_s_length    8
 
   extern const f_string_static_t fss_write_extended_standard_s;
 
@@ -49,6 +51,7 @@ extern "C" {
   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;
   extern const f_string_static_t fss_write_format_code_machine_0001_s;
+  extern const f_string_static_t fss_write_format_code_name_0001_s;
 #endif // _di_fss_write_extended_s_
 
 #ifdef __cplusplus
index 16431bc..5e1ba37 100644 (file)
@@ -14,6 +14,7 @@ extern "C" {
   const f_string_static_t fss_write_format_code_long_0003_s = macro_f_string_static_t_initialize_1(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_1(FSS_WRITE_format_code_human_0003_s, 0, FSS_WRITE_format_code_human_0003_s_length);
   const f_string_static_t fss_write_format_code_machine_0003_s = macro_f_string_static_t_initialize_1(FSS_WRITE_format_code_machine_0003_s, 0, FSS_WRITE_format_code_machine_0003_s_length);
+  const f_string_static_t fss_write_format_code_name_0003_s = macro_f_string_static_t_initialize_1(FSS_WRITE_format_code_name_0003_s, 0, FSS_WRITE_format_code_name_0003_s_length);
 #endif // _di_fss_write_extended_list_s_
 
 #ifdef __cplusplus
index e00cd13..140ae84 100644 (file)
@@ -29,6 +29,7 @@ extern "C" {
   #define FSS_WRITE_format_code_long_0003_s    "fss-0003"
   #define FSS_WRITE_format_code_human_0003_s   "extended list"
   #define FSS_WRITE_format_code_machine_0003_s "extended_list"
+  #define FSS_WRITE_format_code_name_0003_s    "Extended List"
 
   #define FSS_WRITE_extended_list_standard_s_length 24
 
@@ -39,6 +40,7 @@ extern "C" {
   #define FSS_WRITE_format_code_long_0003_s_length    8
   #define FSS_WRITE_format_code_human_0003_s_length   13
   #define FSS_WRITE_format_code_machine_0003_s_length 13
+  #define FSS_WRITE_format_code_name_0003_s_length    13
 
   extern const f_string_static_t fss_write_extended_list_standard_s;
 
@@ -49,6 +51,7 @@ extern "C" {
   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;
   extern const f_string_static_t fss_write_format_code_machine_0003_s;
+  extern const f_string_static_t fss_write_format_code_name_0003_s;
 #endif // _di_fss_write_extended_list_s_
 
 #ifdef __cplusplus
index 1eb7051..b192bde 100644 (file)
@@ -16,6 +16,7 @@ extern "C" {
   const f_string_static_t fss_write_format_code_long_000e_s = macro_f_string_static_t_initialize_1(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_1(FSS_WRITE_format_code_human_000e_s, 0, FSS_WRITE_format_code_human_000e_s_length);
   const f_string_static_t fss_write_format_code_machine_000e_s = macro_f_string_static_t_initialize_1(FSS_WRITE_format_code_machine_000e_s, 0, FSS_WRITE_format_code_machine_000e_s_length);
+  const f_string_static_t fss_write_format_code_name_000e_s = macro_f_string_static_t_initialize_1(FSS_WRITE_format_code_name_000e_s, 0, FSS_WRITE_format_code_name_000e_s_length);
 #endif // _di_fss_write_payload_s_
 
 #ifdef __cplusplus
index a42e342..011d1b4 100644 (file)
@@ -31,6 +31,7 @@ extern "C" {
   #define FSS_WRITE_format_code_long_000e_s    "fss-000e"
   #define FSS_WRITE_format_code_human_000e_s   "payload"
   #define FSS_WRITE_format_code_machine_000e_s "payload"
+  #define FSS_WRITE_format_code_name_000e_s    "Payload"
 
   #define FSS_WRITE_payload_s_length 7
 
@@ -43,6 +44,7 @@ extern "C" {
   #define FSS_WRITE_format_code_long_000e_s_length    8
   #define FSS_WRITE_format_code_human_000e_s_length   7
   #define FSS_WRITE_format_code_machine_000e_s_length 7
+  #define FSS_WRITE_format_code_name_000e_s_length    7
 
   extern const f_string_static_t fss_write_payload_s;
 
@@ -55,6 +57,7 @@ extern "C" {
   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;
   extern const f_string_static_t fss_write_format_code_machine_000e_s;
+  extern const f_string_static_t fss_write_format_code_name_000e_s;
 #endif // _di_fss_write_payload_s_
 
 #ifdef __cplusplus