]> Kevux Git Server - fll/commitdiff
Progress: Continue mass converting to f_string_static_t.
authorKevin Day <thekevinday@gmail.com>
Thu, 10 Feb 2022 04:01:02 +0000 (22:01 -0600)
committerKevin Day <thekevinday@gmail.com>
Thu, 10 Feb 2022 04:01:02 +0000 (22:01 -0600)
49 files changed:
level_3/fss_basic_list_read/c/common.h
level_3/fss_basic_list_write/c/common.c
level_3/fss_basic_list_write/c/common.h
level_3/fss_basic_list_write/c/private-write.c
level_3/fss_basic_read/c/common.c
level_3/fss_basic_read/c/common.h
level_3/fss_basic_read/c/fss_basic_read.c
level_3/fss_basic_read/c/private-read.c
level_3/fss_basic_read/c/private-read.h
level_3/fss_basic_write/c/common.c
level_3/fss_basic_write/c/common.h
level_3/fss_basic_write/c/fss_basic_write.c
level_3/fss_basic_write/c/private-write.c
level_3/fss_embedded_list_read/c/common.c
level_3/fss_embedded_list_read/c/common.h
level_3/fss_embedded_list_read/c/fss_embedded_list_read.c
level_3/fss_embedded_list_read/c/private-read.c
level_3/fss_embedded_list_read/c/private-read.h
level_3/fss_embedded_list_write/c/common.c
level_3/fss_embedded_list_write/c/common.h
level_3/fss_embedded_list_write/c/fss_embedded_list_write.c
level_3/fss_embedded_list_write/c/private-write.c
level_3/fss_embedded_list_write/c/private-write.h
level_3/fss_extended_list_read/c/common.c
level_3/fss_extended_list_read/c/common.h
level_3/fss_extended_list_read/c/fss_extended_list_read.c
level_3/fss_extended_list_read/c/private-print.c
level_3/fss_extended_list_read/c/private-read.c
level_3/fss_extended_list_read/c/private-read.h
level_3/fss_extended_list_write/c/common.c
level_3/fss_extended_list_write/c/common.h
level_3/fss_extended_list_write/c/fss_extended_list_write.c
level_3/fss_extended_list_write/c/private-write.c
level_3/fss_extended_list_write/c/private-write.h
level_3/fss_extended_read/c/common.c
level_3/fss_extended_read/c/common.h
level_3/fss_extended_read/c/fss_extended_read.c
level_3/fss_extended_read/c/private-read.c
level_3/fss_extended_read/c/private-read.h
level_3/fss_extended_write/c/common.c
level_3/fss_extended_write/c/common.h
level_3/fss_extended_write/c/fss_extended_write.c
level_3/fss_extended_write/c/private-write.c
level_3/fss_identify/c/fss_identify.c
level_3/fss_payload_read/c/fss_payload_read.c
level_3/fss_payload_read/c/private-read.c
level_3/fss_payload_read/c/private-read.h
level_3/fss_payload_write/c/fss_payload_write.c
level_3/fss_payload_write/c/private-write.c

index 83e71a1acb1646eeec2db578e37d4ff223e9bf01..df3718ee0166989162f6ba30e0bc2bd9bd81f082 100644 (file)
@@ -64,9 +64,9 @@ extern "C" {
  *
  * fss_basic_list_read_pipe_*:
  *   - name:           A name used to represent the pipe when printing file names.
- *   - content_end:    A code used to reprsent the end of Content for use in binary formats.
- *   - content_ignore: A code used to reprsent the ignoring Content for use in binary formats.
- *   - content_start:  A code used to reprsent the start of Content for use in binary formats.
+ *   - content_end:    A code used to represent the end of Content for use in binary formats.
+ *   - content_ignore: A code used to represent the ignoring Content for use in binary formats.
+ *   - content_start:  A code used to represent the start of Content for use in binary formats.
  */
 #ifndef _di_fss_basic_list_read_defines_
   #define fss_basic_list_read_signal_check_d 10000
index 2cdfa3e50b0284ae835d68a755068d5360de75d1..e424b7430c3a57ade5f5875f304a74d198585c29 100644 (file)
@@ -14,6 +14,7 @@ extern "C" {
 #endif // _di_fss_basic_list_write_program_name_
 
 #ifndef _di_fss_basic_list_write_defines_
+  const f_string_static_t fss_basic_list_write_pipe_name_s = macro_f_string_static_t_initialize(FSS_BASIC_LIST_WRITE_pipe_name_s, 0, FSS_BASIC_LIST_WRITE_pipe_name_s_length);
   const f_string_static_t fss_basic_list_write_pipe_content_end_s = macro_f_string_static_t_initialize(FSS_BASIC_LIST_WRITE_pipe_content_end_s, 0, FSS_BASIC_LIST_WRITE_pipe_content_end_s_length);
   const f_string_static_t fss_basic_list_write_pipe_content_ignore_s = macro_f_string_static_t_initialize(FSS_BASIC_LIST_WRITE_pipe_content_ignore_s, 0, FSS_BASIC_LIST_WRITE_pipe_content_ignore_s_length);
   const f_string_static_t fss_basic_list_write_pipe_content_start_s = macro_f_string_static_t_initialize(FSS_BASIC_LIST_WRITE_pipe_content_start_s, 0, FSS_BASIC_LIST_WRITE_pipe_content_start_s_length);
index 732c37de3d3bc9c77f7a94949379fc12dd4e4be9..297dd93fcff5b7defe9ff7c4f247f9f05981157a 100644 (file)
@@ -61,18 +61,30 @@ extern "C" {
 
 /**
  * The program defines.
+ *
+ * fss_basic_list_write_pipe_*:
+ *   - name:           A name used to represent the pipe when printing file names.
+ *   - content_end:    A code used to represent the end of Content for use in binary formats.
+ *   - content_ignore: A code used to represent the ignoring Content for use in binary formats.
+ *   - content_start:  A code used to represent the start of Content for use in binary formats.
  */
 #ifndef _di_fss_basic_list_write_defines_
   #define fss_basic_list_write_signal_check_d 10000
 
+  #define FSS_BASIC_LIST_WRITE_pipe_name_s "(pipe)"
+
   #define FSS_BASIC_LIST_WRITE_pipe_content_end_s    "\f"
   #define FSS_BASIC_LIST_WRITE_pipe_content_ignore_s "\v"
   #define FSS_BASIC_LIST_WRITE_pipe_content_start_s  "\b"
 
+  #define FSS_BASIC_LIST_WRITE_pipe_name_s_length 6
+
   #define FSS_BASIC_LIST_WRITE_pipe_content_end_s_length    1
   #define FSS_BASIC_LIST_WRITE_pipe_content_ignore_s_length 1
   #define FSS_BASIC_LIST_WRITE_pipe_content_start_s_length  1
 
+  extern const f_string_static_t fss_basic_list_write_pipe_name_s;
+
   extern const f_string_static_t fss_basic_list_write_pipe_content_end_s;
   extern const f_string_static_t fss_basic_list_write_pipe_content_ignore_s;
   extern const f_string_static_t fss_basic_list_write_pipe_content_start_s;
index 1b2aee91ae23f73333e854ce3c01e2e5db03fb1b..5dfedd5a8aaa6f30b5fb16e5e57e915ee627ffb8 100644 (file)
@@ -169,6 +169,7 @@ extern "C" {
 
       if (fss_basic_list_write_signal_received(main)) {
         status = F_status_set_error(F_interrupt);
+
         break;
       }
 
@@ -258,6 +259,7 @@ extern "C" {
 
           if (F_status_is_error(status)) {
             fll_error_print(main->error, F_status_set_fine(status), "f_string_dynamic_increase_by", F_true);
+
             break;
           }
 
index 6c0f50ad08b8904d2c3f5480d85f5bbaaa3de78a..c0995538e913a547b540b24ae585b715213ffd8e 100644 (file)
@@ -14,6 +14,7 @@ extern "C" {
 #endif // _di_fss_basic_read_program_name_
 
 #ifndef _di_fss_basic_read_defines_
+  const f_string_static_t fss_basic_read_pipe_name_s = macro_f_string_static_t_initialize(FSS_BASIC_READ_pipe_name_s, 0, FSS_BASIC_READ_pipe_name_s_length);
   const f_string_static_t fss_basic_read_pipe_content_end_s = macro_f_string_static_t_initialize(FSS_BASIC_READ_pipe_content_end_s, 0, FSS_BASIC_READ_pipe_content_end_s_length);
   const f_string_static_t fss_basic_read_pipe_content_ignore_s = macro_f_string_static_t_initialize(FSS_BASIC_READ_pipe_content_ignore_s, 0, FSS_BASIC_READ_pipe_content_ignore_s_length);
   const f_string_static_t fss_basic_read_pipe_content_start_s = macro_f_string_static_t_initialize(FSS_BASIC_READ_pipe_content_start_s, 0, FSS_BASIC_READ_pipe_content_start_s_length);
index 1ab5079925429703f8701973ec886f7b3c5ab370..99724d2edfd885a92fd44fc9dfc405100da06f06 100644 (file)
@@ -24,9 +24,9 @@ extern "C" {
   #define FSS_BASIC_READ_program_version_minor_s F_string_ascii_5_s
   #define FSS_BASIC_READ_program_version_micro_s F_string_ascii_8_s
 
-  #define FSS_BASIC_READ_program_version_major_s F_string_ascii_0_s_length
-  #define FSS_BASIC_READ_program_version_minor_s F_string_ascii_5_s_length
-  #define FSS_BASIC_READ_program_version_micro_s F_string_ascii_8_s_length
+  #define FSS_BASIC_READ_program_version_major_s_length F_string_ascii_0_s_length
+  #define FSS_BASIC_READ_program_version_minor_s_length F_string_ascii_5_s_length
+  #define FSS_BASIC_READ_program_version_micro_s_length F_string_ascii_8_s_length
 
   #if !(defined(FSS_BASIC_READ_program_version_nano_prefix_s) && defined(FSS_BASIC_READ_program_version_nano_prefix_s_length))
     #define FSS_BASIC_READ_program_version_nano_prefix_s
@@ -61,18 +61,30 @@ extern "C" {
 
 /**
  * The program defines.
+ *
+ * fss_basic_read_pipe_*:
+ *   - name:           A name used to represent the pipe when printing file names.
+ *   - content_end:    A code used to represent the end of Content for use in binary formats.
+ *   - content_ignore: A code used to represent the ignoring Content for use in binary formats.
+ *   - content_start:  A code used to represent the start of Content for use in binary formats.
  */
 #ifndef _di_fss_basic_read_defines_
   #define fss_basic_read_signal_check_d 10000
 
+  #define FSS_BASIC_READ_pipe_name_s "(pipe)"
+
   #define FSS_BASIC_READ_pipe_content_end_s    "\f"
   #define FSS_BASIC_READ_pipe_content_ignore_s "\v"
   #define FSS_BASIC_READ_pipe_content_start_s  "\b"
 
+  #define FSS_BASIC_READ_pipe_name_s_length 6
+
   #define FSS_BASIC_READ_pipe_content_end_s_length    1
   #define FSS_BASIC_READ_pipe_content_ignore_s_length 1
   #define FSS_BASIC_READ_pipe_content_start_s_length  1
 
+  extern const f_string_static_t fss_basic_read_pipe_name_s;
+
   extern const f_string_static_t fss_basic_read_pipe_content_end_s;
   extern const f_string_static_t fss_basic_read_pipe_content_ignore_s;
   extern const f_string_static_t fss_basic_read_pipe_content_start_s;
index 73a5009c3421e3f9313f0ef9b3397ac8a27470dd..af533bfc4187e7e02ee26c159498828a4d295c93 100644 (file)
@@ -222,7 +222,7 @@ extern "C" {
     data.files.array = files_array;
     data.files.used = 1;
     data.files.size = main->parameters.remaining.used + 1;
-    data.files.array[0].name = "(pipe)";
+    data.files.array[0].name = fss_basic_read_pipe_name_s;
     data.files.array[0].range.start = 1;
     data.files.array[0].range.stop = 0;
 
@@ -237,7 +237,7 @@ extern "C" {
           fss_basic_read_parameter_delimit_e,
         };
 
-        const f_string_t parameter_name[] = {
+        const f_string_static_t parameter_name[] = {
           fss_basic_read_long_at_s,
           fss_basic_read_long_depth_s,
           fss_basic_read_long_line_s,
@@ -266,7 +266,7 @@ extern "C" {
 
             fl_print_format("%r%[%QThe parameter '%]", main->error.to.stream, f_string_eol_s, main->error.context, main->error.prefix, main->error.context);
             fl_print_format("%[%r%r%]", main->error.to.stream, main->error.notable, f_console_symbol_long_enable_s, parameter_name[i], main->error.notable);
-            fl_print_format("%[' requires a %r.%]%r", main->error.to.stream, main->error.context, parameter_message[i], main->error.context, f_string_eol_s);
+            fl_print_format("%[' requires a %s.%]%r", main->error.to.stream, main->error.context, parameter_message[i], main->error.context, f_string_eol_s);
 
             funlockfile(main->error.to.stream);
 
@@ -286,7 +286,7 @@ extern "C" {
           fss_basic_read_parameter_total_e,
         };
 
-        const f_string_t parameter_name[] = {
+        const f_string_static_t parameter_name[] = {
           fss_basic_read_long_depth_s,
           fss_basic_read_long_line_s,
           fss_basic_read_long_pipe_s,
@@ -382,13 +382,13 @@ extern "C" {
 
             break;
           }
-          else if (fl_string_dynamic_compare_string(fss_basic_read_delimit_mode_name_none_s.string, argv[index], fss_basic_read_delimit_mode_name_none_s.used) == F_equal_to) {
+          else if (fl_string_dynamic_compare(fss_basic_read_delimit_mode_name_none_s, argv[index]) == F_equal_to) {
             data.delimit_mode = fss_basic_read_delimit_mode_none_e;
           }
-          else if (fl_string_dynamic_compare_string(fss_basic_read_delimit_mode_name_all_s.string, argv[index], fss_basic_read_delimit_mode_name_all_s.used) == F_equal_to) {
+          else if (fl_string_dynamic_compare(fss_basic_read_delimit_mode_name_all_s, argv[index]) == F_equal_to) {
             data.delimit_mode = fss_basic_read_delimit_mode_all_e;
           }
-          else if (fl_string_dynamic_compare_string(fss_basic_read_delimit_mode_name_object_s.string, argv[index], fss_basic_read_delimit_mode_name_object_s.used) == F_equal_to) {
+          else if (fl_string_dynamic_compare(fss_basic_read_delimit_mode_name_object_s, argv[index]) == F_equal_to) {
             switch (data.delimit_mode) {
               case 0:
                 data.delimit_mode = fss_basic_read_delimit_mode_object_e;
@@ -425,7 +425,7 @@ extern "C" {
               data.delimit_mode = fss_basic_read_delimit_mode_content_object_e;
             }
 
-            if (argv[index][length - 1] == fss_basic_read_delimit_mode_name_greater_s.string[0]) {
+            if (argv[index].string[length - 1] == fss_basic_read_delimit_mode_name_greater_s.string[0]) {
               if (!(data.delimit_mode == fss_basic_read_delimit_mode_none_e || data.delimit_mode == fss_basic_read_delimit_mode_all_e)) {
                 if (data.delimit_mode == fss_basic_read_delimit_mode_content_object_e) {
                   data.delimit_mode = fss_basic_read_delimit_mode_content_greater_object_e;
@@ -438,7 +438,7 @@ extern "C" {
               // Shorten the length to better convert the remainder to a number.
               --length;
             }
-            else if (argv[index][length - 1] == fss_basic_read_delimit_mode_name_lesser_s.string[0]) {
+            else if (argv[index].string[length - 1] == fss_basic_read_delimit_mode_name_lesser_s.string[0]) {
               if (!(data.delimit_mode == fss_basic_read_delimit_mode_none_e || data.delimit_mode == fss_basic_read_delimit_mode_all_e)) {
                 if (data.delimit_mode == fss_basic_read_delimit_mode_content_object_e) {
                   data.delimit_mode = fss_basic_read_delimit_mode_content_lesser_object_e;
@@ -455,7 +455,7 @@ extern "C" {
             f_string_range_t range = macro_f_string_range_t_initialize(length);
 
             // Ignore leading plus sign.
-            if (argv[index][0] == '+') {
+            if (argv[index].string[0] == f_string_ascii_plus_s.string[0]) {
               ++range.start;
             }
 
@@ -541,7 +541,7 @@ extern "C" {
 
           // This standard is newline sensitive, when appending files to the buffer if the file lacks a final newline then this could break the format for files appended thereafter.
           // Guarantee that a newline exists at the end of the buffer.
-          status = f_string_append_assure(f_string_eol_s, 1, &data.buffer);
+          status = f_string_dynamic_append_assure(f_string_eol_s, &data.buffer);
 
           if (F_status_is_error(status)) {
             fll_error_file_print(main->error, F_status_set_fine(status), "f_string_append_assure", F_true, f_string_ascii_minus_s, f_file_operation_read_s, fll_error_file_type_pipe_e);
@@ -568,7 +568,7 @@ extern "C" {
           file.stream = 0;
           file.id = -1;
 
-          status = f_file_stream_open(argv[main->parameters.remaining.array[i]], 0, &file);
+          status = f_file_stream_open(argv[main->parameters.remaining.array[i]], f_string_empty_s, &file);
 
           if (F_status_is_error(status)) {
             fll_error_file_print(main->error, F_status_set_fine(status), "f_file_stream_open", F_true, argv[main->parameters.remaining.array[i]], f_file_operation_open_s, fll_error_file_type_file_e);
@@ -602,7 +602,7 @@ extern "C" {
 
               // This standard is newline sensitive, when appending files to the buffer if the file lacks a final newline then this could break the format for files appended thereafter.
               // Guarantee that a newline exists at the end of the buffer.
-              status = f_string_append_assure(f_string_eol_s, 1, &data.buffer);
+              status = f_string_dynamic_append_assure(f_string_eol_s, &data.buffer);
 
               if (F_status_is_error(status)) {
                 fll_error_file_print(main->error, F_status_set_fine(status), "f_string_append_assure", F_true, f_string_ascii_minus_s, f_file_operation_read_s, fll_error_file_type_pipe_e);
index a0681d9e1b870139bc7bafe3b8cf8e74112dc80e..a8016a20e3c7ac771a30816018e919ae3b541aa8 100644 (file)
@@ -61,6 +61,8 @@ extern "C" {
     f_array_length_t position_at = 0;
     f_array_length_t position_name = 0;
 
+    f_string_static_t * const argv = main->parameters.arguments.array;
+
     for (f_array_length_t i = 0; i < data->depths.used; ++i) {
 
       if (fss_basic_read_signal_received(main)) {
@@ -80,9 +82,9 @@ extern "C" {
       else {
         position_depth = main->parameters.array[fss_basic_read_parameter_depth_e].values.array[i];
 
-        const f_string_range_t range = macro_f_string_range_t_initialize(strlen(argv[position_depth]));
+        const f_string_range_t range = macro_f_string_range_t_initialize(argv[position_depth].used);
 
-        status = fl_conversion_string_to_number_unsigned(argv[position_depth], range, &data->depths.array[i].depth);
+        status = fl_conversion_string_to_number_unsigned(argv[position_depth].string, range, &data->depths.array[i].depth);
 
         if (F_status_is_error(status)) {
           fll_error_parameter_integer_print(main->error, F_status_set_fine(status), "fl_conversion_string_to_number_unsigned", F_true, fss_basic_read_long_depth_s, argv[position_depth]);
@@ -104,9 +106,9 @@ extern "C" {
 
           data->depths.array[i].index_at = main->parameters.array[fss_basic_read_parameter_at_e].values.array[position_at];
 
-          const f_string_range_t range = macro_f_string_range_t_initialize(strlen(argv[data->depths.array[i].index_at]));
+          const f_string_range_t range = macro_f_string_range_t_initialize(argv[data->depths.array[i].index_at].used);
 
-          status = fl_conversion_string_to_number_unsigned(argv[data->depths.array[i].index_at], range, &data->depths.array[i].value_at);
+          status = fl_conversion_string_to_number_unsigned(argv[data->depths.array[i].index_at].string, range, &data->depths.array[i].value_at);
 
           if (F_status_is_error(status)) {
             fll_error_parameter_integer_print(main->error, F_status_set_fine(status), "fl_conversion_string_to_number_unsigned", F_true, fss_basic_read_long_at_s, argv[data->depths.array[i].index_at]);
@@ -130,7 +132,7 @@ extern "C" {
           data->depths.array[i].index_name = main->parameters.array[fss_basic_read_parameter_name_e].values.array[position_name];
 
           if (main->parameters.array[fss_basic_read_parameter_trim_e].result == f_console_result_found_e) {
-            status = fl_string_dynamic_rip(argv[data->depths.array[i].index_name], &data->depths.array[i].value_name);
+            status = fl_string_rip(argv[data->depths.array[i].index_name].string, argv[data->depths.array[i].index_name].used, &data->depths.array[i].value_name);
           }
           else {
             status = f_string_dynamic_append(argv[data->depths.array[i].index_name], &data->depths.array[i].value_name);
@@ -224,7 +226,7 @@ extern "C" {
     const f_status_t status = fll_fss_basic_read(data->buffer, state, &input, &data->objects, &data->contents, &data->quotes, &data->delimits, 0);
 
     if (F_status_is_error(status)) {
-      const f_string_t file_name = fss_basic_read_file_identify(input.start, data->files);
+      const f_string_static_t file_name = fss_basic_read_file_identify(input.start, data->files);
 
       fll_error_file_print(main->error, F_status_set_fine(status), "fll_fss_basic_read", F_true, file_name, f_file_operation_process_s, fll_error_file_type_file_e);
 
@@ -246,16 +248,16 @@ extern "C" {
 #endif // _di_fss_basic_read_load_
 
 #ifndef _di_fss_basic_read_load_number_
-  f_status_t fss_basic_read_load_number(fll_program_data_t * const main, const f_array_length_t parameter, const f_string_t name, const f_console_arguments_t *arguments, f_number_unsigned_t *number) {
+  f_status_t fss_basic_read_load_number(fll_program_data_t * const main, const f_array_length_t parameter, const f_string_static_t name, f_number_unsigned_t *number) {
 
     if (main->parameters.array[parameter].result == f_console_result_additional_e) {
       const f_array_length_t index = main->parameters.array[parameter].values.array[main->parameters.array[parameter].values.used - 1];
-      const f_string_range_t range = macro_f_string_range_t_initialize(strnlen(argv[index], F_console_parameter_size_d));
+      const f_string_range_t range = macro_f_string_range_t_initialize(main->parameters.arguments.array[index].used);
 
-      const f_status_t status = fl_conversion_string_to_number_unsigned(argv[index].string, range, number);
+      const f_status_t status = fl_conversion_string_to_number_unsigned(main->parameters.arguments.array[index].string, range, number);
 
       if (F_status_is_error(status)) {
-        fll_error_parameter_integer_print(main->error, F_status_set_fine(status), "fl_conversion_string_to_number_unsigned", F_true, name, argv[index]);
+        fll_error_parameter_integer_print(main->error, F_status_set_fine(status), "fl_conversion_string_to_number_unsigned", F_true, name, main->parameters.arguments.array[index]);
 
         return status;
       }
@@ -563,7 +565,7 @@ extern "C" {
     if (main->parameters.array[fss_basic_read_parameter_line_e].result == f_console_result_additional_e) {
       data->option |= fss_basic_read_data_option_line_d;
 
-      status = fss_basic_read_load_number(main, fss_basic_read_parameter_line_e, fss_basic_read_long_line_s, arguments, &data->line);
+      status = fss_basic_read_load_number(main, fss_basic_read_parameter_line_e, fss_basic_read_long_line_s, &data->line);
       if (F_status_is_error(status)) return status;
     }
 
@@ -582,7 +584,7 @@ extern "C" {
     if (main->parameters.array[fss_basic_read_parameter_select_e].result == f_console_result_additional_e) {
       data->option |= fss_basic_read_data_option_select_d;
 
-      status = fss_basic_read_load_number(main, fss_basic_read_parameter_select_e, fss_basic_read_long_select_s, arguments, &data->select);
+      status = fss_basic_read_load_number(main, fss_basic_read_parameter_select_e, fss_basic_read_long_select_s, &data->select);
       if (F_status_is_error(status)) return status;
     }
 
index b85bbc9a257a93121576493f4816328e60eafd4d..9e0f387f379f2de0f871e7c88fa57c75d0ebc697 100644 (file)
@@ -74,7 +74,7 @@ extern "C" {
  *   On failure to identify, an empty string is returned.
  */
 #ifndef _di_fss_basic_read_file_identify_
-  extern f_string_t fss_basic_read_file_identify(const f_array_length_t at, const fss_basic_read_files_t files) F_attribute_visibility_internal_d;
+  extern f_string_static_t fss_basic_read_file_identify(const f_array_length_t at, const fss_basic_read_files_t files) F_attribute_visibility_internal_d;
 #endif // _di_fss_basic_read_file_identify_
 
 /**
@@ -114,8 +114,6 @@ extern "C" {
  *   An ID representing the parameter.
  * @param name
  *   The parameter name to print on error.
- * @param arguments
- *   The console arguments passed to the program.
  * @param number
  *   The location to store the loaded number.
  *
@@ -130,7 +128,7 @@ extern "C" {
  * @see fss_basic_read_depths_resize()
  */
 #ifndef _di_fss_basic_read_load_number_
-  extern f_status_t fss_basic_read_load_number(fll_program_data_t * const main, const f_array_length_t parameter, const f_string_t name, const f_console_arguments_t *arguments, f_number_unsigned_t *number) F_attribute_visibility_internal_d;
+  extern f_status_t fss_basic_read_load_number(fll_program_data_t * const main, const f_array_length_t parameter, const f_string_static_t name, f_number_unsigned_t *number) F_attribute_visibility_internal_d;
 #endif // _di_fss_basic_read_load_number_
 
 /**
index 14f06385e19f11279f0e257a7cca99d9d9e719ec..a26044baa50f956ba65dc271d4f44607f4b6d2e8 100644 (file)
@@ -14,6 +14,7 @@ extern "C" {
 #endif // _di_fss_basic_write_program_name_
 
 #ifndef _di_fss_basic_write_defines_
+  const f_string_static_t fss_basic_write_pipe_name_s = macro_f_string_static_t_initialize(FSS_BASIC_WRITE_pipe_name_s, 0, FSS_BASIC_WRITE_pipe_name_s_length);
   const f_string_static_t fss_basic_write_pipe_content_end_s = macro_f_string_static_t_initialize(FSS_BASIC_WRITE_pipe_content_end_s, 0, FSS_BASIC_WRITE_pipe_content_end_s_length);
   const f_string_static_t fss_basic_write_pipe_content_ignore_s = macro_f_string_static_t_initialize(FSS_BASIC_WRITE_pipe_content_ignore_s, 0, FSS_BASIC_WRITE_pipe_content_ignore_s_length);
   const f_string_static_t fss_basic_write_pipe_content_start_s = macro_f_string_static_t_initialize(FSS_BASIC_WRITE_pipe_content_start_s, 0, FSS_BASIC_WRITE_pipe_content_start_s_length);
index 46bc0337026dbbc8d090493ee7dd1efc2471174a..e958aa443da9efa19517d31a85a4c4c28a187a10 100644 (file)
@@ -61,18 +61,30 @@ extern "C" {
 
 /**
  * The program defines.
+ *
+ * fss_basic_write_pipe_*:
+ *   - name:           A name used to represent the pipe when printing file names.
+ *   - content_end:    A code used to represent the end of Content for use in binary formats.
+ *   - content_ignore: A code used to represent the ignoring Content for use in binary formats.
+ *   - content_start:  A code used to represent the start of Content for use in binary formats.
  */
 #ifndef _di_fss_basic_write_defines_
   #define fss_basic_write_signal_check_d 10000
 
+  #define FSS_BASIC_WRITE_pipe_name_s "(pipe)"
+
   #define FSS_BASIC_WRITE_pipe_content_end_s    "\f"
   #define FSS_BASIC_WRITE_pipe_content_ignore_s "\v"
   #define FSS_BASIC_WRITE_pipe_content_start_s  "\b"
 
+  #define FSS_BASIC_WRITE_pipe_name_s_length 6
+
   #define FSS_BASIC_WRITE_pipe_content_end_s_length    1
   #define FSS_BASIC_WRITE_pipe_content_ignore_s_length 1
   #define FSS_BASIC_WRITE_pipe_content_start_s_length  1
 
+  extern const f_string_static_t fss_basic_write_pipe_name_s;
+
   extern const f_string_static_t fss_basic_write_pipe_content_end_s;
   extern const f_string_static_t fss_basic_write_pipe_content_ignore_s;
   extern const f_string_static_t fss_basic_write_pipe_content_start_s;
index c867b3eb95884f63509af840ca46e0877b85d928..8452c417a365bb64d8e2d5ad981d17ed2e067fc7 100644 (file)
@@ -397,18 +397,18 @@ extern "C" {
       }
     }
 
-    f_fss_quote_t quote = F_fss_delimit_quote_double_s;
+    f_fss_quote_t quote = f_fss_quote_type_double_e;
 
     if (F_status_is_error_not(status)) {
       if (main->parameters.array[fss_basic_write_parameter_double_e].result == f_console_result_found_e) {
         if (main->parameters.array[fss_basic_write_parameter_single_e].result == f_console_result_found_e) {
           if (main->parameters.array[fss_basic_write_parameter_double_e].location < main->parameters.array[fss_basic_write_parameter_single_e].location) {
-            quote = F_fss_delimit_quote_single_s;
+            quote = f_fss_quote_type_single_e;
           }
         }
       }
       else if (main->parameters.array[fss_basic_write_parameter_single_e].result == f_console_result_found_e) {
-        quote = F_fss_delimit_quote_single_s;
+        quote = f_fss_quote_type_single_e;
       }
     }
 
@@ -433,8 +433,6 @@ extern "C" {
       if (F_status_is_error_not(status)) {
         if (main->parameters.array[fss_basic_write_parameter_partial_e].result == f_console_result_found_e) {
           if (main->parameters.array[fss_basic_write_parameter_object_e].result == f_console_result_additional_e) {
-            content.used = 0;
-
             for (f_array_length_t i = 0; i < main->parameters.array[fss_basic_write_parameter_object_e].values.used; ++i) {
 
               if (fss_basic_write_signal_received(main)) {
@@ -448,8 +446,6 @@ extern "C" {
             } // for
           }
           else {
-            object.used = 0;
-
             for (f_array_length_t i = 0; i < main->parameters.array[fss_basic_write_parameter_content_e].values.used; ++i) {
 
               if (fss_basic_write_signal_received(main)) {
index 8b81abb8baa7e3067ef20eacf1fec9abd867b90a..bdee78f78490cb31d6553bdff0d779d2bc5c710e 100644 (file)
@@ -216,21 +216,21 @@ extern "C" {
 
         for (; range.start <= range.stop; range.start++) {
 
-          if (block.string[range.start] == fss_basic_write_pipe_content_start_s) {
+          if (block.string[range.start] == fss_basic_write_pipe_content_start_s.string[0]) {
             state = 0x2;
             ++range.start;
 
             break;
           }
 
-          if (block.string[range.start] == fss_basic_write_pipe_content_end_s) {
+          if (block.string[range.start] == fss_basic_write_pipe_content_end_s.string[0]) {
             state = 0x3;
             ++range.start;
 
             break;
           }
 
-          if (block.string[range.start] == fss_basic_write_pipe_content_ignore_s) {
+          if (block.string[range.start] == fss_basic_write_pipe_content_ignore_s.string[0]) {
 
             // This is not used by objects.
             continue;
@@ -267,7 +267,7 @@ extern "C" {
 
           for (; range.start <= range.stop; ++range.start) {
 
-            if (block.string[range.start] == fss_basic_write_pipe_content_start_s) {
+            if (block.string[range.start] == fss_basic_write_pipe_content_start_s.string[0]) {
               if (main->error.verbosity != f_console_verbosity_quiet_e) {
                 fll_print_format("%r%[%QThis standard only supports one content per object.%]%r", main->error.to.stream, f_string_eol_s, main->error.context, main->error.prefix, main->error.context, f_string_eol_s);
               }
@@ -277,14 +277,14 @@ extern "C" {
               break;
             }
 
-            if (block.string[range.start] == fss_basic_write_pipe_content_end_s) {
+            if (block.string[range.start] == fss_basic_write_pipe_content_end_s.string[0]) {
               state = 0x3;
               ++range.start;
 
               break;
             }
 
-            if (block.string[range.start] == fss_basic_write_pipe_content_ignore_s) {
+            if (block.string[range.start] == fss_basic_write_pipe_content_ignore_s.string[0]) {
 
               // This is not used by this program.
               continue;
@@ -294,6 +294,7 @@ extern "C" {
               fss_basic_write_error_parameter_unsupported_eol_print(main);
 
               status = F_status_set_error(F_supported_not);
+
               break;
             }
 
index c0c599ffc9c330000be855b6025ba560e3bb41f9..97edc75fdcc23e0a1cbd6865b22b7a2595d41559 100644 (file)
@@ -13,6 +13,13 @@ extern "C" {
   const f_string_static_t fss_embedded_list_read_program_name_long_s = macro_f_string_static_t_initialize(FSS_EMBEDDED_LIST_READ_program_name_long_s, 0, FSS_EMBEDDED_LIST_READ_program_name_long_s_length);
 #endif // _di_fss_embedded_list_read_program_name_
 
+#ifndef _di_fss_embedded_list_read_defines_
+  const f_string_static_t fss_embedded_list_read_pipe_name_s = macro_f_string_static_t_initialize(FSS_EMBEDDED_LIST_READ_pipe_name_s, 0, FSS_EMBEDDED_LIST_READ_pipe_name_s_length);
+  const f_string_static_t fss_embedded_list_read_pipe_content_end_s = macro_f_string_static_t_initialize(FSS_EMBEDDED_LIST_READ_pipe_content_end_s, 0, FSS_EMBEDDED_LIST_READ_pipe_content_end_s_length);
+  const f_string_static_t fss_embedded_list_read_pipe_content_ignore_s = macro_f_string_static_t_initialize(FSS_EMBEDDED_LIST_READ_pipe_content_ignore_s, 0, FSS_EMBEDDED_LIST_READ_pipe_content_ignore_s_length);
+  const f_string_static_t fss_embedded_list_read_pipe_content_start_s = macro_f_string_static_t_initialize(FSS_EMBEDDED_LIST_READ_pipe_content_start_s, 0, FSS_EMBEDDED_LIST_READ_pipe_content_start_s_length);
+#endif // _di_fss_embedded_list_read_defines_
+
 #ifndef _di_fss_embedded_list_read_parameters_
   const f_string_static_t fss_embedded_list_read_short_at_s = macro_f_string_static_t_initialize(FSS_EMBEDDED_LIST_READ_short_at_s, 0, FSS_EMBEDDED_LIST_READ_short_at_s_length);
   const f_string_static_t fss_embedded_list_read_short_content_s = macro_f_string_static_t_initialize(FSS_EMBEDDED_LIST_READ_short_content_s, 0, FSS_EMBEDDED_LIST_READ_short_content_s_length);
@@ -48,7 +55,6 @@ extern "C" {
 #ifndef _di_fss_embedded_list_read_delimit_mode_
   const f_string_static_t fss_embedded_list_read_delimit_mode_name_none_s = macro_f_string_static_t_initialize(FSS_EMBEDDED_LIST_READ_delimit_mode_name_none_s, 0, FSS_EMBEDDED_LIST_READ_delimit_mode_name_none_s_length);
   const f_string_static_t fss_embedded_list_read_delimit_mode_name_all_s = macro_f_string_static_t_initialize(FSS_EMBEDDED_LIST_READ_delimit_mode_name_all_s, 0, FSS_EMBEDDED_LIST_READ_delimit_mode_name_all_s_length);
-  const f_string_static_t fss_embedded_list_read_delimit_mode_name_object_s = macro_f_string_static_t_initialize(FSS_EMBEDDED_LIST_READ_delimit_mode_name_object_s, 0, FSS_EMBEDDED_LIST_READ_delimit_mode_name_object_s_length);
   const f_string_static_t fss_embedded_list_read_delimit_mode_name_greater_s = macro_f_string_static_t_initialize(FSS_EMBEDDED_LIST_READ_delimit_mode_name_greater_s, 0, FSS_EMBEDDED_LIST_READ_delimit_mode_name_greater_s_length);
   const f_string_static_t fss_embedded_list_read_delimit_mode_name_lesser_s = macro_f_string_static_t_initialize(FSS_EMBEDDED_LIST_READ_delimit_mode_name_lesser_s, 0, FSS_EMBEDDED_LIST_READ_delimit_mode_name_lesser_s_length);
 #endif // _di_fss_embedded_list_read_delimit_mode_
index e50447948a3f8fb52bf9ef9dcefe598f3db98b00..0c25f796601301513a1b9ac01682fc7e9a661d45 100644 (file)
@@ -61,18 +61,30 @@ extern "C" {
 
 /**
  * The program defines.
+ *
+ * fss_embedded_list_read_pipe_*:
+ *   - name:           A name used to represent the pipe when printing file names.
+ *   - content_end:    A code used to represent the end of Content for use in binary formats.
+ *   - content_ignore: A code used to represent the ignoring Content for use in binary formats.
+ *   - content_start:  A code used to represent the start of Content for use in binary formats.
  */
 #ifndef _di_fss_embedded_list_read_defines_
   #define fss_embedded_list_read_signal_check_d 10000
 
+  #define FSS_EMBEDDED_LIST_READ_pipe_name_s "(pipe)"
+
   #define FSS_EMBEDDED_LIST_READ_pipe_content_end_s    "\f"
   #define FSS_EMBEDDED_LIST_READ_pipe_content_ignore_s "\v"
   #define FSS_EMBEDDED_LIST_READ_pipe_content_start_s  "\b"
 
+  #define FSS_EMBEDDED_LIST_READ_pipe_name_s_length 6
+
   #define FSS_EMBEDDED_LIST_READ_pipe_content_end_s_length    1
   #define FSS_EMBEDDED_LIST_READ_pipe_content_ignore_s_length 1
   #define FSS_EMBEDDED_LIST_READ_pipe_content_start_s_length  1
 
+  extern const f_string_static_t fss_embedded_list_read_pipe_name_s;
+
   extern const f_string_static_t fss_embedded_list_read_pipe_content_end_s;
   extern const f_string_static_t fss_embedded_list_read_pipe_content_ignore_s;
   extern const f_string_static_t fss_embedded_list_read_pipe_content_start_s;
index d37aa4747f5f6af19cb8a52da46f64cff1294a44..c697762c47b27ea27bd59cd3e1de585182d2f708 100644 (file)
@@ -155,6 +155,7 @@ extern "C" {
 
       if (F_status_is_error(status)) {
         fss_embedded_list_read_main_delete(main);
+
         return F_status_set_error(status);
       }
     }
@@ -360,13 +361,13 @@ extern "C" {
           else {
             main->delimit_mode = fss_embedded_list_read_delimit_mode_depth_e;
 
-            if (argv[index][length - 1] == fss_embedded_list_read_delimit_mode_name_greater_s.string[0]) {
+            if (argv[index].string[length - 1] == fss_embedded_list_read_delimit_mode_name_greater_s.string[0]) {
               main->delimit_mode = fss_embedded_list_read_delimit_mode_depth_greater_e;
 
               // Shorten the length to better convert the remainder to a number.
               --length;
             }
-            else if (argv[index][length - 1] == fss_embedded_list_read_delimit_mode_name_lesser_s.string[0]) {
+            else if (argv[index].string[length - 1] == fss_embedded_list_read_delimit_mode_name_lesser_s.string[0]) {
               main->delimit_mode = fss_embedded_list_read_delimit_mode_depth_lesser_e;
 
               // Shorten the length to better convert the remainder to a number.
@@ -376,7 +377,7 @@ extern "C" {
             f_string_range_t range = macro_f_string_range_t_initialize(length);
 
             // Ignore leading plus sign.
-            if (argv[index][0] == f_string_ascii_plus_s[0]) {
+            if (argv[index].string[0] == f_string_ascii_plus_s.string[0]) {
               ++range.start;
             }
 
@@ -395,10 +396,10 @@ extern "C" {
       f_fss_delimits_t contents_delimits = f_fss_delimits_t_initialize;
       f_fss_comments_t comments = f_fss_comments_t_initialize;
 
-      f_array_length_t original_size = main->quantity.total;
+      const f_array_length_t original_size = main->quantity.total;
 
       if (F_status_is_error_not(status)) {
-        status = fss_embedded_list_read_main_preprocess_depth(main, arguments, &depths);
+        status = fss_embedded_list_read_main_preprocess_depth(main, &depths);
 
         if (F_status_is_error(status)) {
           fll_error_print(main->error, F_status_set_fine(status), "fss_embedded_list_read_main_preprocess_depth", F_true);
@@ -428,7 +429,7 @@ extern "C" {
           fll_error_file_print(main->error, F_status_set_fine(status), "f_file_read", F_true, f_string_ascii_minus_s, f_file_operation_read_s, fll_error_file_type_pipe_e);
         }
         else {
-          status = fss_embedded_list_read_main_process_file(main, arguments, f_string_ascii_minus_s, depths, &objects_delimits, &contents_delimits, &comments);
+          status = fss_embedded_list_read_main_process_file(main, f_string_ascii_minus_s, depths, &objects_delimits, &contents_delimits, &comments);
 
           if (F_status_is_error(status)) {
             fll_error_file_print(main->error, F_status_set_fine(status), "fss_embedded_list_read_main_process_file", F_true, f_string_ascii_minus_s, f_file_operation_read_s, fll_error_file_type_pipe_e);
@@ -451,7 +452,7 @@ extern "C" {
 
           f_file_t file = f_file_t_initialize;
 
-          status = f_file_open(argv[main->parameters.remaining.array[i]], f_string_empty_s, &file);
+          status = f_file_open(argv[main->parameters.remaining.array[i]], 0, &file);
 
           main->quantity.total = original_size;
 
@@ -493,7 +494,7 @@ extern "C" {
             break;
           }
 
-          status = fss_embedded_list_read_main_process_file(main, arguments, argv[main->parameters.remaining.array[i]], depths, &objects_delimits, &contents_delimits, &comments);
+          status = fss_embedded_list_read_main_process_file(main, argv[main->parameters.remaining.array[i]], depths, &objects_delimits, &contents_delimits, &comments);
 
           if (F_status_is_error(status)) {
             fll_error_file_print(main->error, F_status_set_fine(status), "fss_embedded_list_read_main_process_file", F_true, argv[main->parameters.remaining.array[i]], f_file_operation_read_s, fll_error_file_type_file_e);
index 1cd96d4a98b36e929aa256378cedea62d77818f7..3a0111212ddff66cfc66e42ba471837f1d1e4bcf 100644 (file)
@@ -8,7 +8,7 @@ extern "C" {
 #endif
 
 #ifndef _di_fss_embedded_list_read_main_preprocess_depth_
-  f_status_t fss_embedded_list_read_main_preprocess_depth(fss_embedded_list_read_main_t * const main, const f_console_arguments_t *arguments, fss_embedded_list_read_depths_t *depths) {
+  f_status_t fss_embedded_list_read_main_preprocess_depth(fss_embedded_list_read_main_t * const main, fss_embedded_list_read_depths_t *depths) {
 
     f_status_t status = F_none;
 
@@ -116,13 +116,14 @@ extern "C" {
       }
     }
 
-    // provide default level-0 depth values.
+    // Provide default level-0 depth values.
     depths->array[0].depth = 0;
     depths->array[0].index_at = 0;
     depths->array[0].index_name = 0;
     depths->array[0].value_at = 0;
 
     {
+      f_string_static_t * const argv = main->parameters.arguments.array;
       f_number_unsigned_t number = 0;
       bool first_depth = F_true;
 
@@ -133,9 +134,9 @@ extern "C" {
         }
 
         if (values_type[i] == fss_embedded_list_read_parameter_depth_e || values_type[i] == fss_embedded_list_read_parameter_at_e) {
-          const f_string_range_t range = macro_f_string_range_t_initialize(strlen(argv[values_order[i]]));
+          const f_string_range_t range = macro_f_string_range_t_initialize(argv[values_order[i]].used);
 
-          status = fl_conversion_string_to_number_unsigned(argv[values_order[i]], range, &number);
+          status = fl_conversion_string_to_number_unsigned(argv[values_order[i]].string, range, &number);
 
           if (F_status_is_error(status)) {
             fll_error_parameter_integer_print(main->error, F_status_set_fine(status), "fl_conversion_string_to_number_unsigned", F_true, fss_embedded_list_read_long_depth_s, argv[values_order[i]]);
@@ -172,7 +173,7 @@ extern "C" {
           depths->array[depths->used].value_name.used = 0;
 
           if (main->parameters.array[fss_embedded_list_read_parameter_trim_e].result == f_console_result_found_e) {
-            status = fl_string_rip(argv[values_order[i]], strnlen(argv[values_order[i]], F_console_parameter_size_d), &depths->array[depths->used].value_name);
+            status = fl_string_rip(argv[values_order[i]].string, argv[values_order[i]].used, &depths->array[depths->used].value_name);
 
             if (F_status_is_error(status)) {
               fll_error_print(main->error, F_status_set_fine(status), "fl_string_rip", F_true);
@@ -181,7 +182,7 @@ extern "C" {
             }
           }
           else {
-            status = f_string_append(argv[values_order[i]], strnlen(argv[values_order[i]], F_console_parameter_size_d), &depths->array[depths->used].value_name);
+            status = f_string_append(argv[values_order[i]].string, argv[values_order[i]].used, &depths->array[depths->used].value_name);
 
             if (F_status_is_error(status)) {
               fll_error_print(main->error, F_status_set_fine(status), "f_string_append", F_true);
@@ -235,7 +236,7 @@ extern "C" {
 #endif // _di_fss_embedded_list_read_main_preprocess_depth_
 
 #ifndef _di_fss_embedded_list_read_main_process_file_
-  f_status_t fss_embedded_list_read_main_process_file(fss_embedded_list_read_main_t * const main, const f_console_arguments_t *arguments, const f_string_t filename, const fss_embedded_list_read_depths_t depths, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits, f_fss_comments_t *comments) {
+  f_status_t fss_embedded_list_read_main_process_file(fss_embedded_list_read_main_t * const main, const f_string_static_t filename, const fss_embedded_list_read_depths_t depths, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits, f_fss_comments_t *comments) {
 
     f_status_t status = F_none;
 
@@ -301,12 +302,12 @@ extern "C" {
 
       if (main->parameters.array[fss_embedded_list_read_parameter_select_e].result == f_console_result_additional_e) {
         const f_array_length_t index = main->parameters.array[fss_embedded_list_read_parameter_select_e].values.array[main->parameters.array[fss_embedded_list_read_parameter_select_e].values.used - 1];
-        const f_string_range_t range = macro_f_string_range_t_initialize(argv[index]);
+        const f_string_range_t range = macro_f_string_range_t_initialize(main->parameters.arguments.array[index].used);
 
-        status = fl_conversion_string_to_number_unsigned(argv[index].string, range, &select);
+        status = fl_conversion_string_to_number_unsigned(main->parameters.arguments.array[index].string, range, &select);
 
         if (F_status_is_error(status)) {
-          fll_error_parameter_integer_print(main->error, F_status_set_fine(status), "fl_conversion_string_to_number_unsigned", F_true, fss_embedded_list_read_long_select_s, argv[index]);
+          fll_error_parameter_integer_print(main->error, F_status_set_fine(status), "fl_conversion_string_to_number_unsigned", F_true, fss_embedded_list_read_long_select_s, main->parameters.arguments.array[index]);
 
           return status;
         }
@@ -322,12 +323,12 @@ extern "C" {
 
     if (main->parameters.array[fss_embedded_list_read_parameter_line_e].result == f_console_result_additional_e) {
       const f_array_length_t index = main->parameters.array[fss_embedded_list_read_parameter_line_e].values.array[main->parameters.array[fss_embedded_list_read_parameter_line_e].values.used - 1];
-      const f_string_range_t range = macro_f_string_range_t_initialize(argv[index].used);
+      const f_string_range_t range = macro_f_string_range_t_initialize(main->parameters.arguments.array[index].used);
 
-      status = fl_conversion_string_to_number_unsigned(argv[index].string, range, &line);
+      status = fl_conversion_string_to_number_unsigned(main->parameters.arguments.array[index].string, range, &line);
 
       if (F_status_is_error(status)) {
-        fll_error_parameter_integer_print(main->error, F_status_set_fine(status), "fl_conversion_string_to_number_unsigned", F_true, fss_embedded_list_read_long_line_s, argv[index]);
+        fll_error_parameter_integer_print(main->error, F_status_set_fine(status), "fl_conversion_string_to_number_unsigned", F_true, fss_embedded_list_read_long_line_s, main->parameters.arguments.array[index]);
 
         return status;
       }
@@ -341,15 +342,15 @@ extern "C" {
     if (main->parameters.array[fss_embedded_list_read_parameter_raw_e].result == f_console_result_found_e) {
       f_fss_delimits_t except_none = f_fss_delimits_t_initialize;
 
-      return fss_embedded_list_read_main_process_for_depth(main, arguments, filename, depths, 0, line, parents, &except_none, &except_none);
+      return fss_embedded_list_read_main_process_for_depth(main, filename, depths, 0, line, parents, &except_none, &except_none);
     }
 
-    return fss_embedded_list_read_main_process_for_depth(main, arguments, filename, depths, 0, line, parents, objects_delimits, contents_delimits);
+    return fss_embedded_list_read_main_process_for_depth(main, filename, depths, 0, line, parents, objects_delimits, contents_delimits);
   }
 #endif // _di_fss_embedded_list_read_main_process_file_
 
 #ifndef _di_fss_embedded_list_read_main_process_for_depth_
-  f_status_t fss_embedded_list_read_main_process_for_depth(fss_embedded_list_read_main_t * const main, const f_console_arguments_t *arguments, const f_string_t filename, const fss_embedded_list_read_depths_t depths, const f_array_length_t depths_index, const f_array_length_t line, const fss_embedded_list_read_skip_t parents, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits) {
+  f_status_t fss_embedded_list_read_main_process_for_depth(fss_embedded_list_read_main_t * const main, const f_string_static_t filename, const fss_embedded_list_read_depths_t depths, const f_array_length_t depths_index, const f_array_length_t line, const fss_embedded_list_read_skip_t parents, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits) {
 
     f_fss_items_t *items = &main->nest.depth[depths.array[depths_index].depth];
 
@@ -491,7 +492,7 @@ extern "C" {
         } // for
       }
 
-      return fss_embedded_list_read_main_process_for_depth(main, arguments, filename, depths, depths_index + 1, line, parents_next, objects_delimits, contents_delimits);
+      return fss_embedded_list_read_main_process_for_depth(main, filename, depths, depths_index + 1, line, parents_next, objects_delimits, contents_delimits);
     }
 
     // Process objects.
@@ -666,7 +667,7 @@ extern "C" {
       f_print_except_dynamic_partial(main->buffer, items->array[i].content.array[0], *contents_delimits, main->output.to.stream);
 
       if (main->parameters.array[fss_embedded_list_read_parameter_pipe_e].result == f_console_result_found_e) {
-        f_print_character(fss_embedded_list_read_pipe_content_end_s, main->output.to.stream);
+        f_print_dynamic_raw(fss_embedded_list_read_pipe_content_end_s, main->output.to.stream);
       }
     } // for
 
index e7c9e2b15f13070ff1fe262c603368c4e0b81ce8..e747ddb1734be87918cf33d266903f7972e6ab88 100644 (file)
@@ -19,8 +19,6 @@ extern "C" {
  *
  * @param main
  *   The main program data.
- * @param arguments
- *   The console arguments to pre-process.
  * @param depths
  *   This stores the pre-processed depth parameters.
  *
@@ -30,7 +28,7 @@ extern "C" {
  *   Status codes (with error bit) are returned on any problem.
  */
 #ifndef _di_fss_embedded_list_read_main_preprocess_depth_
-  extern f_status_t fss_embedded_list_read_main_preprocess_depth(fss_embedded_list_read_main_t * const main, const f_console_arguments_t *arguments, fss_embedded_list_read_depths_t *depths) F_attribute_visibility_internal_d;
+  extern f_status_t fss_embedded_list_read_main_preprocess_depth(fss_embedded_list_read_main_t * const main, fss_embedded_list_read_depths_t *depths) F_attribute_visibility_internal_d;
 #endif // _di_fss_embedded_list_read_main_preprocess_depth_
 
 /**
@@ -38,8 +36,6 @@ extern "C" {
  *
  * @param main
  *   The main program data.
- * @param arguments
- *   The console arguments passed to the program.
  * @param file_name
  *   The name of the file being processed.
  * @param depths
@@ -61,7 +57,7 @@ extern "C" {
  *   Status codes (with error bit) are returned on any problem.
  */
 #ifndef _di_fss_embedded_list_read_main_process_file_
-  extern f_status_t fss_embedded_list_read_main_process_file(fss_embedded_list_read_main_t * const main, const f_console_arguments_t *arguments, const f_string_t file_name, const fss_embedded_list_read_depths_t depths, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits, f_fss_comments_t *comments) F_attribute_visibility_internal_d;
+  extern f_status_t fss_embedded_list_read_main_process_file(fss_embedded_list_read_main_t * const main, const f_string_static_t file_name, const fss_embedded_list_read_depths_t depths, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits, f_fss_comments_t *comments) F_attribute_visibility_internal_d;
 #endif // _di_fss_embedded_list_read_main_process_file_
 
 /**
@@ -71,8 +67,6 @@ extern "C" {
  *
  * @param main
  *   The main program data.
- * @param arguments
- *   The console arguments passed to the program.
  * @param file_name
  *   The name of the file being processed.
  * @param depths
@@ -97,7 +91,7 @@ extern "C" {
  * @see fss_embedded_list_read_main_process_file()
  */
 #ifndef _di_fss_embedded_list_read_main_process_for_depth_
-  extern f_status_t fss_embedded_list_read_main_process_for_depth(fss_embedded_list_read_main_t * const main, const f_console_arguments_t *arguments, const f_string_t filename, const fss_embedded_list_read_depths_t depths, const f_array_length_t depths_index, const f_array_length_t line, const fss_embedded_list_read_skip_t parents, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits) F_attribute_visibility_internal_d;
+  extern f_status_t fss_embedded_list_read_main_process_for_depth(fss_embedded_list_read_main_t * const main, const f_string_static_t filename, const fss_embedded_list_read_depths_t depths, const f_array_length_t depths_index, const f_array_length_t line, const fss_embedded_list_read_skip_t parents, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits) F_attribute_visibility_internal_d;
 #endif // _di_fss_embedded_list_read_main_process_for_depth_
 
 /**
index 30df6b088a853e316c102442a9002f940602cd38..273ffd009e3f18b0e144a35230bb5e7f8254a18d 100644 (file)
@@ -14,6 +14,7 @@ extern "C" {
 #endif // _di_fss_embedded_list_write_program_name_
 
 #ifndef _di_fss_embedded_list_write_defines_
+  const f_string_static_t fss_embedded_list_write_pipe_name_s = macro_f_string_static_t_initialize(FSS_EMBEDDED_LIST_WRITE_pipe_name_s, 0, FSS_EMBEDDED_LIST_WRITE_pipe_name_s_length);
   const f_string_static_t fss_embedded_list_write_pipe_content_end_s = macro_f_string_static_t_initialize(FSS_EMBEDDED_LIST_WRITE_pipe_content_end_s, 0, FSS_EMBEDDED_LIST_WRITE_pipe_content_end_s_length);
   const f_string_static_t fss_embedded_list_write_pipe_content_ignore_s = macro_f_string_static_t_initialize(FSS_EMBEDDED_LIST_WRITE_pipe_content_ignore_s, 0, FSS_EMBEDDED_LIST_WRITE_pipe_content_ignore_s_length);
   const f_string_static_t fss_embedded_list_write_pipe_content_start_s = macro_f_string_static_t_initialize(FSS_EMBEDDED_LIST_WRITE_pipe_content_start_s, 0, FSS_EMBEDDED_LIST_WRITE_pipe_content_start_s_length);
index 3234dbf46658860d0d4dc742a19294b6fef36f29..cb78b802a8f1cd0b4d54e97ce67de170b67ac1ef 100644 (file)
@@ -61,18 +61,30 @@ extern "C" {
 
 /**
  * The program defines.
+ *
+ * fss_embedded_list_write_pipe_*:
+ *   - name:           A name used to represent the pipe when printing file names.
+ *   - content_end:    A code used to represent the end of Content for use in binary formats.
+ *   - content_ignore: A code used to represent the ignoring Content for use in binary formats.
+ *   - content_start:  A code used to represent the start of Content for use in binary formats.
  */
 #ifndef _di_fss_embedded_list_write_defines_
   #define fss_embedded_list_write_signal_check_d 10000
 
+  #define FSS_EMBEDDED_LIST_WRITE_pipe_name_s "(pipe)"
+
   #define FSS_EMBEDDED_LIST_WRITE_pipe_content_end_s    "\f"
   #define FSS_EMBEDDED_LIST_WRITE_pipe_content_ignore_s "\v"
   #define FSS_EMBEDDED_LIST_WRITE_pipe_content_start_s  "\b"
 
+  #define FSS_EMBEDDED_LIST_WRITE_pipe_name_s_length 6
+
   #define FSS_EMBEDDED_LIST_WRITE_pipe_content_end_s_length    1
   #define FSS_EMBEDDED_LIST_WRITE_pipe_content_ignore_s_length 1
   #define FSS_EMBEDDED_LIST_WRITE_pipe_content_start_s_length  1
 
+  extern const f_string_static_t fss_embedded_list_write_pipe_name_s;
+
   extern const f_string_static_t fss_embedded_list_write_pipe_content_end_s;
   extern const f_string_static_t fss_embedded_list_write_pipe_content_ignore_s;
   extern const f_string_static_t fss_embedded_list_write_pipe_content_start_s;
index d7fdc8a635b9d3c7557eed0292ab65c5b9191fb7..eb95c179241af74610f0146630043263c9d524f0 100644 (file)
@@ -191,7 +191,7 @@ extern "C" {
         }
       }
       else if (main->parameters.array[fss_embedded_list_write_parameter_file_e].result == f_console_result_found_e) {
-        fss_embedded_list_write_error_parameter_value_missing_print(main, f_console_symbol_long_enable_s.string.string, fss_embedded_list_write_long_file_s);
+        fss_embedded_list_write_error_parameter_value_missing_print(main, f_console_symbol_long_enable_s, fss_embedded_list_write_long_file_s);
         status = F_status_set_error(F_parameter);
       }
     }
@@ -331,7 +331,7 @@ extern "C" {
 
           for (; range.start < argv[index].used; ++range.start) {
 
-            status = f_fss_is_space(main->parameter->arguments.array[index], range);
+            status = f_fss_is_space(argv[index], range);
             if (F_status_is_error(status)) break;
 
             if (status == F_false) {
@@ -399,18 +399,18 @@ extern "C" {
       }
     }
 
-    f_fss_quote_t quote = F_fss_delimit_quote_double_s;
+    f_fss_quote_t quote = f_fss_quote_type_double_e;
 
     if (F_status_is_error_not(status)) {
       if (main->parameters.array[fss_embedded_list_write_parameter_double_e].result == f_console_result_found_e) {
         if (main->parameters.array[fss_embedded_list_write_parameter_single_e].result == f_console_result_found_e) {
           if (main->parameters.array[fss_embedded_list_write_parameter_double_e].location < main->parameters.array[fss_embedded_list_write_parameter_single_e].location) {
-            quote = F_fss_delimit_quote_single_s;
+            quote = f_fss_quote_type_single_e;
           }
         }
       }
       else if (main->parameters.array[fss_embedded_list_write_parameter_single_e].result == f_console_result_found_e) {
-        quote = F_fss_delimit_quote_single_s;
+        quote = f_fss_quote_type_single_e;
       }
     }
 
@@ -461,7 +461,7 @@ extern "C" {
                 break;
               }
 
-              status = fss_embedded_list_write_process_parameter_ignore(main, arguments, main->parameters.array[fss_embedded_list_write_parameter_content_e].locations, i, &ignore);
+              status = fss_embedded_list_write_process_parameter_ignore(main, main->parameters.array[fss_embedded_list_write_parameter_content_e].locations, i, &ignore);
               if (F_status_is_error(status)) break;
 
               status = fss_embedded_list_write_process(main, output, quote, 0, &argv[main->parameters.array[fss_embedded_list_write_parameter_content_e].values.array[i]], &ignore, &buffer);
@@ -478,7 +478,7 @@ extern "C" {
               break;
             }
 
-            status = fss_embedded_list_write_process_parameter_ignore(main, arguments, main->parameters.array[fss_embedded_list_write_parameter_content_e].locations, i, &ignore);
+            status = fss_embedded_list_write_process_parameter_ignore(main, main->parameters.array[fss_embedded_list_write_parameter_content_e].locations, i, &ignore);
             if (F_status_is_error(status)) break;
 
             status = fss_embedded_list_write_process(main, output, quote, &argv[main->parameters.array[fss_embedded_list_write_parameter_object_e].values.array[i]], &argv[main->parameters.array[fss_embedded_list_write_parameter_content_e].values.array[i]], &ignore, &buffer);
index 8ffb042b48e0740baaed1349cfa2daa7d07af29d..07ec520770fc0216c1fc911770312e7fb8295ff7 100644 (file)
@@ -108,7 +108,16 @@ extern "C" {
       range.start = 0;
       range.stop = content->used - 1;
 
-      status = fl_fss_embedded_list_content_write(*content, object ? f_fss_complete_full_e : f_fss_complete_none_e, &main->prepend, ignore, state, &range, buffer);
+      f_string_static_t *prepend = 0;
+
+      if (main->parameters.array[fss_embedded_list_write_parameter_prepend_e].result == f_console_result_additional_e) {
+        const f_array_length_t index = main->parameters.array[fss_embedded_list_write_parameter_prepend_e].values.array[main->parameters.array[fss_embedded_list_write_parameter_prepend_e].values.used - 1];
+
+        prepend = &main->parameters.arguments.array[index];
+      }
+
+
+      status = fl_fss_embedded_list_content_write(*content, object ? f_fss_complete_full_e : f_fss_complete_none_e, prepend, ignore, state, &range, buffer);
 
       if (F_status_is_error(status)) {
         fll_error_print(main->error, F_status_set_fine(status), "fl_fss_embedded_list_content_write", F_true);
@@ -213,22 +222,22 @@ extern "C" {
 
         for (; range.start <= range.stop; ++range.start) {
 
-          if (block.string[range.start] == fss_embedded_list_write_pipe_content_start_s) {
+          if (block.string[range.start] == fss_embedded_list_write_pipe_content_start_s.string[0]) {
             state = 0x2;
             ++range.start;
 
             break;
           }
 
-          if (block.string[range.start] == fss_embedded_list_write_pipe_content_end_s) {
+          if (block.string[range.start] == fss_embedded_list_write_pipe_content_end_s.string[0]) {
             state = 0x3;
             ++range.start;
 
             break;
           }
 
-          if (block.string[range.start] == fss_embedded_list_write_pipe_content_ignore_s) {
-            // this is not used by objects.
+          if (block.string[range.start] == fss_embedded_list_write_pipe_content_ignore_s.string[0]) {
+            // This is not used by objects.
             continue;
           }
 
@@ -263,7 +272,7 @@ extern "C" {
 
           for (; range.start <= range.stop; ++range.start) {
 
-            if (block.string[range.start] == fss_embedded_list_write_pipe_content_start_s) {
+            if (block.string[range.start] == fss_embedded_list_write_pipe_content_start_s.string[0]) {
               if (main->error.verbosity != f_console_verbosity_quiet_e) {
                 fll_print_format("%r%[%QThis standard only supports one content per object.%]%r", main->error.to.stream, f_string_eol_s, main->error.context, main->error.prefix, main->error.context, f_string_eol_s);
               }
@@ -273,14 +282,14 @@ extern "C" {
               break;
             }
 
-            if (block.string[range.start] == fss_embedded_list_write_pipe_content_end_s) {
+            if (block.string[range.start] == fss_embedded_list_write_pipe_content_end_s.string[0]) {
               state = 0x3;
               ++range.start;
 
               break;
             }
 
-            if (block.string[range.start] == fss_embedded_list_write_pipe_content_ignore_s) {
+            if (block.string[range.start] == fss_embedded_list_write_pipe_content_ignore_s.string[0]) {
               if (ignore) {
                 if (range_ignore.start > range_ignore.stop) {
                   range_ignore.start = content.used;
@@ -353,7 +362,7 @@ extern "C" {
 #endif // _di_fss_embedded_list_write_process_pipe_
 
 #ifndef _di_fss_embedded_list_write_process_parameter_ignore_
-  f_status_t fss_embedded_list_write_process_parameter_ignore(fll_program_data_t * const main, const f_console_arguments_t *arguments, const f_array_lengths_t contents, const f_array_length_t location, f_string_ranges_t *ignore) {
+  f_status_t fss_embedded_list_write_process_parameter_ignore(fll_program_data_t * const main, const f_array_lengths_t contents, const f_array_length_t location, f_string_ranges_t *ignore) {
 
     f_status_t status = F_none;
 
@@ -365,6 +374,8 @@ extern "C" {
 
     f_number_unsigned_t number = 0;
 
+    f_string_static_t * const argv = main->parameters.arguments.array;
+
     range.start = 0;
 
     for (; i < main->parameters.array[fss_embedded_list_write_parameter_ignore_e].locations.used; ++i) {
@@ -405,7 +416,7 @@ extern "C" {
       range.stop = argv[index].used - 1;
 
       // allow and ignore the positive sign.
-      if (range.stop && argv[index][0] == f_string_ascii_plus_s[0]) {
+      if (range.stop && argv[index].string[0] == f_string_ascii_plus_s.string[0]) {
         range.start = 1;
       }
 
@@ -425,7 +436,7 @@ extern "C" {
       range.stop = argv[index].used - 1;
 
       // Allow and ignore the positive sign.
-      if (range.stop && argv[index][0] == f_string_ascii_plus_s[0]) {
+      if (range.stop && argv[index].string[0] == f_string_ascii_plus_s.string[0]) {
         range.start = 1;
       }
 
index bf59fd07955642e77f0faa4aa94e2ff266b54b99..30fba166bd5332009392da71333da87181f34e0b 100644 (file)
@@ -105,8 +105,6 @@ extern "C" {
  *
  * @param main
  *   The main program data.
- * @param arguments
- *   The parameters passed to the process.
  * @param contents
  *   The console parameter locations array for the content parameter.
  * @param location
@@ -119,7 +117,7 @@ extern "C" {
  *   F_failure (with error bit) for any othe failure.
  */
 #ifndef _di_fss_embedded_list_write_process_parameter_ignore_
-  extern f_status_t fss_embedded_list_write_process_parameter_ignore(fll_program_data_t * const main, const f_console_arguments_t *arguments, const f_array_lengths_t contents, const f_array_length_t location, f_string_ranges_t *ignore) F_attribute_visibility_internal_d;
+  extern f_status_t fss_embedded_list_write_process_parameter_ignore(fll_program_data_t * const main, const f_array_lengths_t contents, const f_array_length_t location, f_string_ranges_t *ignore) F_attribute_visibility_internal_d;
 #endif // _di_fss_embedded_list_write_process_parameter_ignore_
 
 #ifdef __cplusplus
index 6c95bd6ab0851a4ef7ee2cc3b0bf14eceafad9f8..7675a99ef1cca6d606b2223b91045595f8d5f086 100644 (file)
@@ -14,6 +14,7 @@ extern "C" {
 #endif // _di_fss_extended_list_read_program_name_
 
 #ifndef _di_fss_extended_list_read_defines_
+  const f_string_static_t fss_extended_list_read_pipe_name_s = macro_f_string_static_t_initialize(FSS_EXTENDED_LIST_READ_pipe_name_s, 0, FSS_EXTENDED_LIST_READ_pipe_name_s_length);
   const f_string_static_t fss_extended_list_read_pipe_content_end_s = macro_f_string_static_t_initialize(FSS_EXTENDED_LIST_READ_pipe_content_end_s, 0, FSS_EXTENDED_LIST_READ_pipe_content_end_s_length);
   const f_string_static_t fss_extended_list_read_pipe_content_ignore_s = macro_f_string_static_t_initialize(FSS_EXTENDED_LIST_READ_pipe_content_ignore_s, 0, FSS_EXTENDED_LIST_READ_pipe_content_ignore_s_length);
   const f_string_static_t fss_extended_list_read_pipe_content_start_s = macro_f_string_static_t_initialize(FSS_EXTENDED_LIST_READ_pipe_content_start_s, 0, FSS_EXTENDED_LIST_READ_pipe_content_start_s_length);
index 3e23909419b15c8052e7f8c5b946e836a9d38397..af62d042f2ee868b6829f386deab1c5724ec4772 100644 (file)
@@ -38,15 +38,21 @@ extern "C" {
     #define FSS_EXTENDED_LIST_READ_program_version_nano_s_length 0
   #endif // !(defined(FSS_EXTENDED_LIST_READ_program_version_nano_s) && defined(FSS_EXTENDED_LIST_READ_program_version_nano_s_length))
 
-  #define FSS_EXTENDED_LIST_READ_program_version_s FSS_EXTENDED_LIST_READ_program_version_major_s F_string_ascii_period_s FSS_EXTENDED_LIST_READ_program_version_minor_s F_string_ascii_period_s FSS_EXTENDED_LIST_READ_program_version_micro_s FSS_EXTENDED_LIST_READ_version_nano_prefix_s FSS_EXTENDED_LIST_READ_version_nano_s
+  #define FSS_EXTENDED_LIST_READ_program_version_s FSS_EXTENDED_LIST_READ_program_version_major_s F_string_ascii_period_s FSS_EXTENDED_LIST_READ_program_version_minor_s F_string_ascii_period_s FSS_EXTENDED_LIST_READ_program_version_micro_s FSS_EXTENDED_LIST_READ_program_version_nano_prefix_s FSS_EXTENDED_LIST_READ_program_version_nano_s
 
-  #define FSS_EXTENDED_LIST_READ_program_version_s_length FSS_EXTENDED_LIST_READ_program_version_major_s_length + F_string_ascii_period_s_length + FSS_EXTENDED_LIST_READ_program_version_minor_s_length + F_string_ascii_period_s_length + FSS_EXTENDED_LIST_READ_program_version_micro_s_length + FSS_EXTENDED_LIST_READ_version_nano_prefix_s_length + FSS_EXTENDED_LIST_READ_version_nano_s_length
+  #define FSS_EXTENDED_LIST_READ_program_version_s_length FSS_EXTENDED_LIST_READ_program_version_major_s_length + F_string_ascii_period_s_length + FSS_EXTENDED_LIST_READ_program_version_minor_s_length + F_string_ascii_period_s_length + FSS_EXTENDED_LIST_READ_program_version_micro_s_length + FSS_EXTENDED_LIST_READ_program_version_nano_prefix_s_length + FSS_EXTENDED_LIST_READ_program_version_nano_s_length
 
   extern const f_string_static_t fss_extended_list_read_program_version_s;
 #endif // _di_fss_extended_list_read_program_version_
 
 /**
  * The program name.
+ *
+ * fss_extended_list_read_pipe_*:
+ *   - name:           A name used to represent the pipe when printing file names.
+ *   - content_end:    A code used to represent the end of Content for use in binary formats.
+ *   - content_ignore: A code used to represent the ignoring Content for use in binary formats.
+ *   - content_start:  A code used to represent the start of Content for use in binary formats.
  */
 #ifndef _di_fss_extended_list_read_program_name_
   #define FSS_EXTENDED_LIST_READ_program_name_s      "fss_extended_list_read"
@@ -65,14 +71,20 @@ extern "C" {
 #ifndef _di_fss_extended_list_read_defines_
   #define fss_extended_list_read_signal_check_d 10000
 
+  #define FSS_EXTENDED_LIST_READ_pipe_name_s "(pipe)"
+
   #define FSS_EXTENDED_LIST_READ_pipe_content_end_s    "\f"
   #define FSS_EXTENDED_LIST_READ_pipe_content_ignore_s "\v"
   #define FSS_EXTENDED_LIST_READ_pipe_content_start_s  "\b"
 
+  #define FSS_EXTENDED_LIST_READ_pipe_name_s_length 6
+
   #define FSS_EXTENDED_LIST_READ_pipe_content_end_s_length    1
   #define FSS_EXTENDED_LIST_READ_pipe_content_ignore_s_length 1
   #define FSS_EXTENDED_LIST_READ_pipe_content_start_s_length  1
 
+  extern const f_string_static_t fss_extended_list_read_pipe_name_s;
+
   extern const f_string_static_t fss_extended_list_read_pipe_content_end_s;
   extern const f_string_static_t fss_extended_list_read_pipe_content_ignore_s;
   extern const f_string_static_t fss_extended_list_read_pipe_content_start_s;
index 070e494d46a6a73eddc6725bbecf18d7ad3cfa60..b59601916916229838c9a19e7378a0902557767f 100644 (file)
@@ -222,7 +222,7 @@ extern "C" {
     data.files.array = files_array;
     data.files.used = 1;
     data.files.size = main->parameters.remaining.used + 1;
-    data.files.array[0].name = "(pipe)";
+    data.files.array[0].name = fss_extended_list_read_pipe_name_s;
     data.files.array[0].range.start = 1;
     data.files.array[0].range.stop = 0;
 
@@ -237,7 +237,7 @@ extern "C" {
           fss_extended_list_read_parameter_delimit_e,
         };
 
-        const f_string_t parameter_name[] = {
+        const f_string_static_t parameter_name[] = {
           fss_extended_list_read_long_at_s,
           fss_extended_list_read_long_depth_s,
           fss_extended_list_read_long_line_s,
@@ -425,7 +425,7 @@ extern "C" {
               data.delimit_mode = fss_extended_list_read_delimit_mode_content_object_e;
             }
 
-            if (argv[index][length - 1] == fss_extended_list_read_delimit_mode_name_greater_s.string[0]) {
+            if (argv[index].string[length - 1] == fss_extended_list_read_delimit_mode_name_greater_s.string[0]) {
               if (!(data.delimit_mode == fss_extended_list_read_delimit_mode_none_e || data.delimit_mode == fss_extended_list_read_delimit_mode_all_e)) {
                 if (data.delimit_mode == fss_extended_list_read_delimit_mode_content_object_e) {
                   data.delimit_mode = fss_extended_list_read_delimit_mode_content_greater_object_e;
@@ -438,7 +438,7 @@ extern "C" {
               // Shorten the length to better convert the remainder to a number.
               --length;
             }
-            else if (argv[index][length - 1] == fss_extended_list_read_delimit_mode_name_lesser_s.string[0]) {
+            else if (argv[index].string[length - 1] == fss_extended_list_read_delimit_mode_name_lesser_s.string[0]) {
               if (!(data.delimit_mode == fss_extended_list_read_delimit_mode_none_e || data.delimit_mode == fss_extended_list_read_delimit_mode_all_e)) {
                 if (data.delimit_mode == fss_extended_list_read_delimit_mode_content_object_e) {
                   data.delimit_mode = fss_extended_list_read_delimit_mode_content_lesser_object_e;
@@ -455,7 +455,7 @@ extern "C" {
             f_string_range_t range = macro_f_string_range_t_initialize(length);
 
             // Ignore leading plus sign.
-            if (argv[index][0] == f_string_ascii_plus_s[0]) {
+            if (argv[index].string[0] == f_string_ascii_plus_s.string[0]) {
               ++range.start;
             }
 
@@ -541,7 +541,7 @@ extern "C" {
 
           // This standard is newline sensitive, when appending files to the buffer if the file lacks a final newline then this could break the format for files appended thereafter.
           // Guarantee that a newline exists at the end of the buffer.
-          status = f_string_append_assure(f_string_eol_s, 1, &data.buffer);
+          status = f_string_dynamic_append_assure(f_string_eol_s, &data.buffer);
 
           if (F_status_is_error(status)) {
             fll_error_file_print(main->error, F_status_set_fine(status), "f_string_append_assure", F_true, f_string_ascii_minus_s, f_file_operation_read_s, fll_error_file_type_pipe_e);
@@ -568,7 +568,7 @@ extern "C" {
           file.stream = 0;
           file.id = -1;
 
-          status = f_file_stream_open(argv[main->parameters.remaining.array[i]], 0, &file);
+          status = f_file_stream_open(argv[main->parameters.remaining.array[i]], f_string_empty_s, &file);
 
           if (F_status_is_error(status)) {
             fll_error_file_print(main->error, F_status_set_fine(status), "f_file_stream_open", F_true, argv[main->parameters.remaining.array[i]], f_file_operation_open_s, fll_error_file_type_file_e);
@@ -601,10 +601,10 @@ extern "C" {
 
               // This standard is newline sensitive, when appending files to the buffer if the file lacks a final newline then this could break the format for files appended thereafter.
               // Guarantee that a newline exists at the end of the buffer.
-              status = f_string_append_assure(f_string_eol_s, 1, &data.buffer);
+              status = f_string_dynamic_append_assure(f_string_eol_s, &data.buffer);
 
               if (F_status_is_error(status)) {
-                fll_error_file_print(main->error, F_status_set_fine(status), "f_string_append_assure", F_true, f_string_ascii_s, f_file_operation_read_s, fll_error_file_type_pipe_e);
+                fll_error_file_print(main->error, F_status_set_fine(status), "f_string_append_assure", F_true, f_string_ascii_minus_s, f_file_operation_read_s, fll_error_file_type_pipe_e);
               }
             }
           }
index 48e524d671978d96d51023d51e209094bcee9568..dc7e45de9065cf273da7432cbe67e2917b2c530e 100644 (file)
@@ -68,7 +68,7 @@ extern "C" {
   void fss_extended_list_read_print_content_ignore(fll_program_data_t * const main) {
 
     if (main->parameters.array[fss_extended_list_read_parameter_pipe_e].result == f_console_result_found_e) {
-      f_print_dynamic_raw(fss_extended_list_read_pipe_content_ignore, main->output.to.stream);
+      f_print_dynamic_raw(fss_extended_list_read_pipe_content_ignore_s, main->output.to.stream);
     }
   }
 #endif // _di_fss_extended_list_read_print_content_ignore_
@@ -77,7 +77,7 @@ extern "C" {
   void fss_extended_list_read_print_object_end(fll_program_data_t * const main, fss_extended_list_read_data_t * const data) {
 
     if (main->parameters.array[fss_extended_list_read_parameter_pipe_e].result == f_console_result_found_e) {
-      f_print_dynamic_raw(fss_extended_list_read_pipe_content_start, main->output.to.stream);
+      f_print_dynamic_raw(fss_extended_list_read_pipe_content_start_s, main->output.to.stream);
     }
     else {
       if ((data->option & fss_extended_list_read_data_option_object_d) && (data->option & fss_extended_list_read_data_option_content_d)) {
@@ -92,7 +92,7 @@ extern "C" {
   void fss_extended_list_read_print_set_end(fll_program_data_t * const main, fss_extended_list_read_data_t * const data) {
 
     if (main->parameters.array[fss_extended_list_read_parameter_pipe_e].result == f_console_result_found_e) {
-      f_print_character(fss_extended_list_read_pipe_content_end, main->output.to.stream);
+      f_print_dynamic_raw(fss_extended_list_read_pipe_content_end_s, main->output.to.stream);
     }
     else {
       if (data->option & fss_extended_list_read_data_option_object_d) {
index 7f7972acd002f7f3b2996cd9a897849f5de860c1..e96ccd290df97de9c1b4993e76874b518804bad2 100644 (file)
@@ -84,6 +84,8 @@ extern "C" {
     f_array_length_t position_at = 0;
     f_array_length_t position_name = 0;
 
+    f_string_static_t * const argv = main->parameters.arguments.array;
+
     for (f_array_length_t i = 0; i < data->depths.used; ++i) {
 
       if (fss_extended_list_read_signal_received(main)) {
@@ -153,7 +155,7 @@ extern "C" {
           data->depths.array[i].index_name = main->parameters.array[fss_extended_list_read_parameter_name_e].values.array[position_name];
 
           if (main->parameters.array[fss_extended_list_read_parameter_trim_e].result == f_console_result_found_e) {
-            status = fl_string_dynamic_rip(argv[data->depths.array[i].index_name], &data->depths.array[i].value_name);
+            status = fl_string_rip(argv[data->depths.array[i].index_name].string, argv[data->depths.array[i].index_name].used, &data->depths.array[i].value_name);
           }
           else {
             status = f_string_dynamic_append(argv[data->depths.array[i].index_name], &data->depths.array[i].value_name);
@@ -246,7 +248,7 @@ extern "C" {
     const f_status_t status = fll_fss_extended_list_read(data->buffer, state, &input, &data->objects, &data->contents, &data->delimits_object, &data->delimits_content, &data->comments);
 
     if (F_status_is_error(status)) {
-      const f_string_t file_name = fss_extended_list_read_file_identify(input.start, data->files);
+      const f_string_static_t file_name = fss_extended_list_read_file_identify(input.start, data->files);
 
       fll_error_file_print(main->error, F_status_set_fine(status), "fll_fss_extended_list_read", F_true, file_name, f_file_operation_process_s, fll_error_file_type_file_e);
 
@@ -268,16 +270,16 @@ extern "C" {
 #endif // _di_fss_extended_list_read_load_
 
 #ifndef _di_fss_extended_list_read_load_number_
-  f_status_t fss_extended_list_read_load_number(fll_program_data_t * const main, const f_array_length_t parameter, const f_string_t name, const f_console_arguments_t *arguments, f_number_unsigned_t *number) {
+  f_status_t fss_extended_list_read_load_number(fll_program_data_t * const main, const f_array_length_t parameter, const f_string_static_t name, f_number_unsigned_t *number) {
 
     if (main->parameters.array[parameter].result == f_console_result_additional_e) {
       const f_array_length_t index = main->parameters.array[parameter].values.array[main->parameters.array[parameter].values.used - 1];
-      const f_string_range_t range = macro_f_string_range_t_initialize(argv[index].used);
+      const f_string_range_t range = macro_f_string_range_t_initialize(main->parameters.arguments.array[index].used);
 
-      const f_status_t status = fl_conversion_string_to_number_unsigned(argv[index].string, range, number);
+      const f_status_t status = fl_conversion_string_to_number_unsigned(main->parameters.arguments.array[index].string, range, number);
 
       if (F_status_is_error(status)) {
-        fll_error_parameter_integer_print(main->error, F_status_set_fine(status), "fl_conversion_string_to_number_unsigned", F_true, name, argv[index]);
+        fll_error_parameter_integer_print(main->error, F_status_set_fine(status), "fl_conversion_string_to_number_unsigned", F_true, name, main->parameters.arguments.array[index]);
 
         return status;
       }
@@ -670,7 +672,7 @@ extern "C" {
     if (main->parameters.array[fss_extended_list_read_parameter_line_e].result == f_console_result_additional_e) {
       data->option |= fss_extended_list_read_data_option_line_d;
 
-      status = fss_extended_list_read_load_number(main, fss_extended_list_read_parameter_line_e, fss_extended_list_read_long_line_s, arguments, &data->line);
+      status = fss_extended_list_read_load_number(main, fss_extended_list_read_parameter_line_e, fss_extended_list_read_long_line_s, &data->line);
       if (F_status_is_error(status)) return status;
     }
 
@@ -689,7 +691,7 @@ extern "C" {
     if (main->parameters.array[fss_extended_list_read_parameter_select_e].result == f_console_result_additional_e) {
       data->option |= fss_extended_list_read_data_option_select_d;
 
-      status = fss_extended_list_read_load_number(main, fss_extended_list_read_parameter_select_e, fss_extended_list_read_long_select_s, arguments, &data->select);
+      status = fss_extended_list_read_load_number(main, fss_extended_list_read_parameter_select_e, fss_extended_list_read_long_select_s, &data->select);
       if (F_status_is_error(status)) return status;
     }
 
index 35664c3599586f89ffa1ccda50c9997951f88552..426cff42575293e42c18b1b59e1acd7b7a00f248 100644 (file)
@@ -90,7 +90,7 @@ extern "C" {
  *   On failure to identify, an empty string is returned.
  */
 #ifndef _di_fss_extended_list_read_file_identify_
-  extern f_string_t fss_extended_list_read_file_identify(const f_array_length_t at, const fss_extended_list_read_files_t files) F_attribute_visibility_internal_d;
+  extern f_string_static_t fss_extended_list_read_file_identify(const f_array_length_t at, const fss_extended_list_read_files_t files) F_attribute_visibility_internal_d;
 #endif // _di_fss_extended_list_read_file_identify_
 
 /**
@@ -130,8 +130,6 @@ extern "C" {
  *   An ID representing the parameter.
  * @param name
  *   The parameter name to print on error.
- * @param arguments
- *   The console arguments passed to the program.
  * @param number
  *   The location to store the loaded number.
  *
@@ -146,7 +144,7 @@ extern "C" {
  * @see fss_extended_list_read_depths_resize()
  */
 #ifndef _di_fss_extended_list_read_load_number_
-  extern f_status_t fss_extended_list_read_load_number(fll_program_data_t * const main, const f_array_length_t parameter, const f_string_t name, const f_console_arguments_t *arguments, f_number_unsigned_t *number) F_attribute_visibility_internal_d;
+  extern f_status_t fss_extended_list_read_load_number(fll_program_data_t * const main, const f_array_length_t parameter, const f_string_static_t name, f_number_unsigned_t *number) F_attribute_visibility_internal_d;
 #endif // _di_fss_extended_list_read_load_number_
 
 /**
index b5174cf99e3dd3ee318e1d73045fa58ba1c08a88..4adc3bbfffca2372975a0caaf2db52c367d81f50 100644 (file)
@@ -14,6 +14,7 @@ extern "C" {
 #endif // _di_fss_extended_list_write_program_name_
 
 #ifndef _di_fss_extended_list_write_defines_
+  const f_string_static_t fss_extended_list_write_pipe_name_s = macro_f_string_static_t_initialize(FSS_EXTENDED_LIST_WRITE_pipe_name_s, 0, FSS_EXTENDED_LIST_WRITE_pipe_name_s_length);
   const f_string_static_t fss_extended_list_write_pipe_content_end_s = macro_f_string_static_t_initialize(FSS_EXTENDED_LIST_WRITE_pipe_content_end_s, 0, FSS_EXTENDED_LIST_WRITE_pipe_content_end_s_length);
   const f_string_static_t fss_extended_list_write_pipe_content_ignore_s = macro_f_string_static_t_initialize(FSS_EXTENDED_LIST_WRITE_pipe_content_ignore_s, 0, FSS_EXTENDED_LIST_WRITE_pipe_content_ignore_s_length);
   const f_string_static_t fss_extended_list_write_pipe_content_start_s = macro_f_string_static_t_initialize(FSS_EXTENDED_LIST_WRITE_pipe_content_start_s, 0, FSS_EXTENDED_LIST_WRITE_pipe_content_start_s_length);
index 824c00f4385ac11457c6b9147310d6ab0313119e..3bb56480dff811096931346813c6ad45391b501b 100644 (file)
@@ -61,10 +61,20 @@ extern "C" {
 
 /**
  * The program defines.
+ *
+ * fss_extended_list_write_pipe_*:
+ *   - name:           A name used to represent the pipe when printing file names.
+ *   - content_end:    A code used to represent the end of Content for use in binary formats.
+ *   - content_ignore: A code used to represent the ignoring Content for use in binary formats.
+ *   - content_start:  A code used to represent the start of Content for use in binary formats.
  */
 #ifndef _di_fss_extended_list_write_defines_
   #define fss_extended_list_write_signal_check_d 10000
 
+  #define FSS_EXTENDED_LIST_READ_pipe_name_s "(pipe)"
+
+  #define FSS_EXTENDED_LIST_READ_pipe_name_s_length 6
+
   #define FSS_EXTENDED_LIST_WRITE_pipe_content_end_s    "\f"
   #define FSS_EXTENDED_LIST_WRITE_pipe_content_ignore_s "\v"
   #define FSS_EXTENDED_LIST_WRITE_pipe_content_start_s  "\b"
@@ -73,6 +83,8 @@ extern "C" {
   #define FSS_EXTENDED_LIST_WRITE_pipe_content_ignore_s_length 1
   #define FSS_EXTENDED_LIST_WRITE_pipe_content_start_s_length  1
 
+  extern const f_string_static_t fss_extended_list_read_pipe_name_s;
+
   extern const f_string_static_t fss_extended_list_write_pipe_content_end_s;
   extern const f_string_static_t fss_extended_list_write_pipe_content_ignore_s;
   extern const f_string_static_t fss_extended_list_write_pipe_content_start_s;
index b301d3fc2f183badefb241842a1efa6b33ad2112..40998137b2aaf21e3f41f7d3601e3fc38246dc7e 100644 (file)
@@ -324,7 +324,6 @@ extern "C" {
       }
       else if (main->parameters.array[fss_extended_list_write_parameter_prepend_e].result == f_console_result_additional_e) {
         const f_array_length_t index = main->parameters.array[fss_extended_list_write_parameter_prepend_e].values.array[main->parameters.array[fss_extended_list_write_parameter_prepend_e].values.used - 1];
-        const f_array_length_t length = strnlen(argv[index], F_console_parameter_size_d);
 
         if (length) {
           f_string_range_t range = macro_f_string_range_t_initialize(length);
@@ -403,18 +402,18 @@ extern "C" {
       }
     }
 
-    f_fss_quote_t quote = F_fss_delimit_quote_double_s;
+    f_fss_quote_t quote = f_fss_delimit_quote_double_s;
 
     if (F_status_is_error_not(status)) {
       if (main->parameters.array[fss_extended_list_write_parameter_double_e].result == f_console_result_found_e) {
         if (main->parameters.array[fss_extended_list_write_parameter_single_e].result == f_console_result_found_e) {
           if (main->parameters.array[fss_extended_list_write_parameter_double_e].location < main->parameters.array[fss_extended_list_write_parameter_single_e].location) {
-            quote = F_fss_delimit_quote_single_s;
+            quote = f_fss_quote_type_single_e;
           }
         }
       }
       else if (main->parameters.array[fss_extended_list_write_parameter_single_e].result == f_console_result_found_e) {
-        quote = F_fss_delimit_quote_single_s;
+        quote = f_fss_quote_type_single_e;
       }
     }
 
@@ -465,7 +464,7 @@ extern "C" {
                 break;
               }
 
-              status = fss_extended_list_write_process_parameter_ignore(main, arguments, main->parameters.array[fss_extended_list_write_parameter_content_e].locations, i, &ignore);
+              status = fss_extended_list_write_process_parameter_ignore(main, main->parameters.array[fss_extended_list_write_parameter_content_e].locations, i, &ignore);
               if (F_status_is_error(status)) break;
 
               status = fss_extended_list_write_process(main, output, quote, 0, &argv[main->parameters.array[fss_extended_list_write_parameter_content_e].values.array[i]], &ignore, &buffer);
@@ -482,7 +481,7 @@ extern "C" {
               break;
             }
 
-            status = fss_extended_list_write_process_parameter_ignore(main, arguments, main->parameters.array[fss_extended_list_write_parameter_content_e].locations, i, &ignore);
+            status = fss_extended_list_write_process_parameter_ignore(main, main->parameters.array[fss_extended_list_write_parameter_content_e].locations, i, &ignore);
             if (F_status_is_error(status)) break;
 
             status = fss_extended_list_write_process(main, output, quote, &argv[main->parameters.array[fss_extended_list_write_parameter_object_e].values.array[i]], &argv[main->parameters.array[fss_extended_list_write_parameter_content_e].values.array[i]], &ignore, &buffer);
index 7d82be2b453ee5f2abd47e65b76c3e3a1ab119d7..649eac70f5cf323c56a6d950a169aedd1d738abe 100644 (file)
@@ -209,21 +209,21 @@ extern "C" {
 
         for (; range.start <= range.stop; ++range.start) {
 
-          if (block.string[range.start] == fss_extended_list_write_pipe_content_start_s) {
+          if (block.string[range.start] == fss_extended_list_write_pipe_content_start_s.string[0]) {
             state = 0x2;
             ++range.start;
 
             break;
           }
 
-          if (block.string[range.start] == fss_extended_list_write_pipe_content_end_s) {
+          if (block.string[range.start] == fss_extended_list_write_pipe_content_end_s.string[0]) {
             state = 0x3;
             ++range.start;
 
             break;
           }
 
-          if (block.string[range.start] == fss_extended_list_write_pipe_content_ignore_s) {
+          if (block.string[range.start] == fss_extended_list_write_pipe_content_ignore_s.string[0]) {
 
             // This is not used by objects.
             continue;
@@ -260,7 +260,7 @@ extern "C" {
 
           for (; range.start <= range.stop; ++range.start) {
 
-            if (block.string[range.start] == fss_extended_list_write_pipe_content_start_s) {
+            if (block.string[range.start] == fss_extended_list_write_pipe_content_start_s.string[0]) {
               if (main->error.verbosity != f_console_verbosity_quiet_e) {
                 fll_print_format("%r%[%QThis standard only supports one content per object.%]%r", main->error.to.stream, f_string_eol_s, main->error.context, main->error.prefix, main->error.context, f_string_eol_s);
               }
@@ -270,14 +270,14 @@ extern "C" {
               break;
             }
 
-            if (block.string[range.start] == fss_extended_list_write_pipe_content_end_s) {
+            if (block.string[range.start] == fss_extended_list_write_pipe_content_end_s.string[0]) {
               state = 0x3;
               range.start++;
 
               break;
             }
 
-            if (block.string[range.start] == fss_extended_list_write_pipe_content_ignore_s) {
+            if (block.string[range.start] == fss_extended_list_write_pipe_content_ignore_s.string[0]) {
               if (ignore) {
                 if (range_ignore.start > range_ignore.stop) {
                   range_ignore.start = content.used;
@@ -350,7 +350,7 @@ extern "C" {
 #endif // _di_fss_extended_list_write_process_pipe_
 
 #ifndef _di_fss_extended_list_write_process_parameter_ignore_
-  f_status_t fss_extended_list_write_process_parameter_ignore(fll_program_data_t * const main, const f_console_arguments_t *arguments, const f_array_lengths_t contents, const f_array_length_t location, f_string_ranges_t *ignore) {
+  f_status_t fss_extended_list_write_process_parameter_ignore(fll_program_data_t * const main, const f_array_lengths_t contents, const f_array_length_t location, f_string_ranges_t *ignore) {
 
     f_status_t status = F_none;
 
@@ -362,6 +362,8 @@ extern "C" {
 
     f_number_unsigned_t number = 0;
 
+    f_string_static_t * const argv = main->parameters.arguments.array;
+
     range.start = 0;
 
     for (; i < main->parameters.array[fss_extended_list_write_parameter_ignore_e].locations.used; ++i) {
@@ -402,7 +404,7 @@ extern "C" {
       range.stop = strnlen(argv[index], F_console_parameter_size_d) - 1;
 
       // allow and ignore the positive sign.
-      if (range.stop > 0 && argv[index][0] == '+') {
+      if (range.stop > 0 && argv[index].string[0] == f_string_ascii_plus_s.string[0]) {
         range.start = 1;
       }
 
@@ -422,7 +424,7 @@ extern "C" {
       range.stop = strnlen(argv[index], F_console_parameter_size_d) - 1;
 
       // allow and ignore the positive sign.
-      if (range.stop > 0 && argv[index][0] == '+') {
+      if (range.stop > 0 && argv[index].string[0] == f_string_ascii_plus_s.string[0]) {
         range.start = 1;
       }
 
index 0883710ae3c784858f8a1ac96a24739566d1a021..4f54ee71fcfaaa34b8d948bfd6139530233fb446 100644 (file)
@@ -105,8 +105,6 @@ extern "C" {
  *
  * @param main
  *   The main program data.
- * @param arguments
- *   The parameters passed to the process.
  * @param contents
  *   The console parameter locations array for the content parameter.
  * @param location
@@ -119,7 +117,7 @@ extern "C" {
  *   F_failure (with error bit) for any othe failure.
  */
 #ifndef _di_fss_extended_list_write_process_parameter_ignore_
-  extern f_status_t fss_extended_list_write_process_parameter_ignore(fll_program_data_t * const main, const f_console_arguments_t *arguments, const f_array_lengths_t contents, const f_array_length_t location, f_string_ranges_t *ignore) F_attribute_visibility_internal_d;
+  extern f_status_t fss_extended_list_write_process_parameter_ignore(fll_program_data_t * const main, const f_array_lengths_t contents, const f_array_length_t location, f_string_ranges_t *ignore) F_attribute_visibility_internal_d;
 #endif // _di_fss_extended_list_write_process_parameter_ignore_
 
 #ifdef __cplusplus
index ddf08ccd51ba841e126611aec76c2abc1a5da7e0..db906b046c641a436aa577f72d5d150ab85a081d 100644 (file)
@@ -14,6 +14,7 @@ extern "C" {
 #endif // _di_fss_extended_read_program_name_
 
 #ifndef _di_fss_extended_read_defines_
+  const f_string_static_t fss_extended_read_pipe_name_s = macro_f_string_static_t_initialize(FSS_EXTENDED_READ_pipe_name_s, 0, FSS_EXTENDED_READ_pipe_name_s_length);
   const f_string_static_t fss_extended_read_pipe_content_end_s = macro_f_string_static_t_initialize(FSS_EXTENDED_READ_pipe_content_end_s, 0, FSS_EXTENDED_READ_pipe_content_end_s_length);
   const f_string_static_t fss_extended_read_pipe_content_ignore_s = macro_f_string_static_t_initialize(FSS_EXTENDED_READ_pipe_content_ignore_s, 0, FSS_EXTENDED_READ_pipe_content_ignore_s_length);
   const f_string_static_t fss_extended_read_pipe_content_start_s = macro_f_string_static_t_initialize(FSS_EXTENDED_READ_pipe_content_start_s, 0, FSS_EXTENDED_READ_pipe_content_start_s_length);
index dd66d09ca1ed79cfbbe4dab674d9e3e5671b9f73..c22c4cd21b9b50d75a4bb5301ed483d0c8bb2306 100644 (file)
@@ -61,18 +61,30 @@ extern "C" {
 
 /**
  * The program defines.
+ *
+ * fss_extended_read_pipe_*:
+ *   - name:           A name used to represent the pipe when printing file names.
+ *   - content_end:    A code used to represent the end of Content for use in binary formats.
+ *   - content_ignore: A code used to represent the ignoring Content for use in binary formats.
+ *   - content_start:  A code used to represent the start of Content for use in binary formats.
  */
 #ifndef _di_fss_extended_read_defines_
   #define fss_extended_read_signal_check_d 10000
 
+  #define FSS_EXTENDED_READ_pipe_name_s "(pipe)"
+
   #define FSS_EXTENDED_READ_pipe_content_end_s    "\f"
   #define FSS_EXTENDED_READ_pipe_content_ignore_s "\v"
   #define FSS_EXTENDED_READ_pipe_content_start_s  "\b"
 
+  #define FSS_EXTENDED_READ_pipe_name_s_length 6
+
   #define FSS_EXTENDED_READ_pipe_content_end_s_length    1
   #define FSS_EXTENDED_READ_pipe_content_ignore_s_length 1
   #define FSS_EXTENDED_READ_pipe_content_start_s_length  1
 
+  extern const f_string_static_t fss_extended_read_pipe_name_s;
+
   extern const f_string_static_t fss_extended_read_pipe_content_end_s;
   extern const f_string_static_t fss_extended_read_pipe_content_ignore_s;
   extern const f_string_static_t fss_extended_read_pipe_content_start_s;
index d3f24b54a23fad67c364e0b1544af80d41e90952..05aba446d7fadf91b458897a3fbbd6d830a10d61 100644 (file)
@@ -222,7 +222,7 @@ extern "C" {
     data.files.array = files_array;
     data.files.used = 1;
     data.files.size = main->parameters.remaining.used + 1;
-    data.files.array[0].name = "(pipe)";
+    data.files.array[0].name = fss_extended_read_pipe_name_s;
     data.files.array[0].range.start = 1;
     data.files.array[0].range.stop = 0;
 
@@ -543,10 +543,10 @@ extern "C" {
 
           // This standard is newline sensitive, when appending files to the buffer if the file lacks a final newline then this could break the format for files appended thereafter.
           // Guarantee that a newline exists at the end of the buffer.
-          status = f_string_append_assure(f_string_eol_s, 1, &data.buffer);
+          status = f_string_dynamic_append_assure(f_string_eol_s, &data.buffer);
 
           if (F_status_is_error(status)) {
-            fll_error_file_print(main->error, F_status_set_fine(status), "f_string_append_assure", F_true, f_string_ascii_s, f_file_operation_read_s, fll_error_file_type_pipe_e);
+            fll_error_file_print(main->error, F_status_set_fine(status), "f_string_append_assure", F_true, f_string_ascii_minus_s, f_file_operation_read_s, fll_error_file_type_pipe_e);
           }
         }
         else {
@@ -574,7 +574,7 @@ extern "C" {
           file.stream = 0;
           file.id = -1;
 
-          status = f_file_stream_open(argv[main->parameters.remaining.array[i]], 0, &file);
+          status = f_file_stream_open(argv[main->parameters.remaining.array[i]], f_string_empty_s, &file);
 
           if (F_status_is_error(status)) {
             fll_error_file_print(main->error, F_status_set_fine(status), "f_file_stream_open", F_true, argv[main->parameters.remaining.array[i]], f_file_operation_open_s, fll_error_file_type_file_e);
@@ -608,10 +608,10 @@ extern "C" {
 
               // This standard is newline sensitive, when appending files to the buffer if the file lacks a final newline then this could break the format for files appended thereafter.
               // Guarantee that a newline exists at the end of the buffer.
-              status = f_string_append_assure(f_string_eol_s, 1, &data.buffer);
+              status = f_string_dynamic_append_assure(f_string_eol_s, &data.buffer);
 
               if (F_status_is_error(status)) {
-                fll_error_file_print(main->error, F_status_set_fine(status), "f_string_append_assure", F_true, f_string_ascii_s, f_file_operation_read_s, fll_error_file_type_pipe_e);
+                fll_error_file_print(main->error, F_status_set_fine(status), "f_string_append_assure", F_true, f_string_ascii_minus_s, f_file_operation_read_s, fll_error_file_type_pipe_e);
               }
             }
           }
index eb35b5160e6f3a3d8840d0f3d2433d50295632b3..272b21b0d4cf0da2f8e624f2f08d001cbd3d4a01 100644 (file)
@@ -261,7 +261,7 @@ extern "C" {
     const f_status_t status = fll_fss_extended_read(data->buffer, state, &input, &data->objects, &data->contents, &data->quotes_object, &data->quotes_content, &data->delimits_object, &data->delimits_content);
 
     if (F_status_is_error(status)) {
-      const f_string_t file_name = fss_extended_read_file_identify(input.start, data->files);
+      const f_string_static_t file_name = fss_extended_read_file_identify(input.start, data->files);
 
       fll_error_file_print(main->error, F_status_set_fine(status), "fll_fss_extended_read", F_true, file_name, f_file_operation_process_s, fll_error_file_type_file_e);
 
@@ -283,16 +283,16 @@ extern "C" {
 #endif // _di_fss_extended_read_load_
 
 #ifndef _di_fss_extended_read_load_number_
-  f_status_t fss_extended_read_load_number(fll_program_data_t * const main, const f_array_length_t parameter, const f_string_t name, const f_console_arguments_t *arguments, f_number_unsigned_t *number) {
+  f_status_t fss_extended_read_load_number(fll_program_data_t * const main, const f_array_length_t parameter, const f_string_static_t name, f_number_unsigned_t *number) {
 
     if (main->parameters.array[parameter].result == f_console_result_additional_e) {
       const f_array_length_t index = main->parameters.array[parameter].values.array[main->parameters.array[parameter].values.used - 1];
-      const f_string_range_t range = macro_f_string_range_t_initialize(strnlen(arguments->argv[index], F_console_parameter_size_d));
+      const f_string_range_t range = macro_f_string_range_t_initialize(main->parameters.arguments.array[index].used);
 
-      const f_status_t status = fl_conversion_string_to_number_unsigned(arguments->argv[index], range, number);
+      const f_status_t status = fl_conversion_string_to_number_unsigned(main->parameters.arguments.array[index].string, range, number);
 
       if (F_status_is_error(status)) {
-        fll_error_parameter_integer_print(main->error, F_status_set_fine(status), "fl_conversion_string_to_number_unsigned", F_true, name, arguments->argv[index]);
+        fll_error_parameter_integer_print(main->error, F_status_set_fine(status), "fl_conversion_string_to_number_unsigned", F_true, name, main->parameters.arguments.array[index]);
 
         return status;
       }
@@ -600,7 +600,7 @@ extern "C" {
     if (main->parameters.array[fss_extended_read_parameter_line_e].result == f_console_result_additional_e) {
       data->option |= fss_extended_read_data_option_line_d;
 
-      status = fss_extended_read_load_number(main, fss_extended_read_parameter_line_e, fss_extended_read_long_line_s, arguments, &data->line);
+      status = fss_extended_read_load_number(main, fss_extended_read_parameter_line_e, fss_extended_read_long_line_s, &data->line);
       if (F_status_is_error(status)) return status;
     }
 
@@ -619,7 +619,7 @@ extern "C" {
     if (main->parameters.array[fss_extended_read_parameter_select_e].result == f_console_result_additional_e) {
       data->option |= fss_extended_read_data_option_select_d;
 
-      status = fss_extended_read_load_number(main, fss_extended_read_parameter_select_e, fss_extended_read_long_select_s, arguments, &data->select);
+      status = fss_extended_read_load_number(main, fss_extended_read_parameter_select_e, fss_extended_read_long_select_s, &data->select);
       if (F_status_is_error(status)) return status;
     }
 
index 509e3ef8be14f8aab2a047c010c571bb2ead2542..3cf437e12f07585f7a580c072cba802b5d3c6cbe 100644 (file)
@@ -90,7 +90,7 @@ extern "C" {
  *   On failure to identify, an empty string is returned.
  */
 #ifndef _di_fss_extended_read_file_identify_
-  extern f_string_t fss_extended_read_file_identify(const f_array_length_t at, const fss_extended_read_files_t files) F_attribute_visibility_internal_d;
+  extern f_string_static_t fss_extended_read_file_identify(const f_array_length_t at, const fss_extended_read_files_t files) F_attribute_visibility_internal_d;
 #endif // _di_fss_extended_read_file_identify_
 
 /**
@@ -130,8 +130,6 @@ extern "C" {
  *   An ID representing the parameter.
  * @param name
  *   The parameter name to print on error.
- * @param arguments
- *   The console arguments passed to the program.
  * @param number
  *   The location to store the loaded number.
  *
@@ -146,7 +144,7 @@ extern "C" {
  * @see fss_extended_read_depths_resize()
  */
 #ifndef _di_fss_extended_read_load_number_
-  extern f_status_t fss_extended_read_load_number(fll_program_data_t * const main, const f_array_length_t parameter, const f_string_t name, const f_console_arguments_t *arguments, f_number_unsigned_t *number) F_attribute_visibility_internal_d;
+  extern f_status_t fss_extended_read_load_number(fll_program_data_t * const main, const f_array_length_t parameter, const f_string_static_t name, f_number_unsigned_t *number) F_attribute_visibility_internal_d;
 #endif // _di_fss_extended_read_load_number_
 
 /**
index d7ec54012716f20c45cf4b0c080bddf8a735a7cb..95be75d3b3fbcdf1034af58dc0c8080fa5e9ef6e 100644 (file)
@@ -14,6 +14,7 @@ extern "C" {
 #endif // _di_fss_extended_write_program_name_
 
 #ifndef _di_fss_extended_write_defines_
+  const f_string_static_t fss_extended_write_pipe_name_s = macro_f_string_static_t_initialize(FSS_EXTENDED_WRITE_pipe_name_s, 0, FSS_EXTENDED_WRITE_pipe_name_s_length);
   const f_string_static_t fss_extended_write_pipe_content_end_s = macro_f_string_static_t_initialize(FSS_EXTENDED_WRITE_pipe_content_end_s, 0, FSS_EXTENDED_WRITE_pipe_content_end_s_length);
   const f_string_static_t fss_extended_write_pipe_content_ignore_s = macro_f_string_static_t_initialize(FSS_EXTENDED_WRITE_pipe_content_ignore_s, 0, FSS_EXTENDED_WRITE_pipe_content_ignore_s_length);
   const f_string_static_t fss_extended_write_pipe_content_start_s = macro_f_string_static_t_initialize(FSS_EXTENDED_WRITE_pipe_content_start_s, 0, FSS_EXTENDED_WRITE_pipe_content_start_s_length);
index 405778c4b045b510fe1234293d0e4e52c8a1133b..600e772a87c41d4b593a23b972af5e57ea1217e3 100644 (file)
@@ -61,18 +61,30 @@ extern "C" {
 
 /**
  * The main program defines.
+ *
+ * fss_extended_write_pipe_*:
+ *   - name:           A name used to represent the pipe when printing file names.
+ *   - content_end:    A code used to represent the end of Content for use in binary formats.
+ *   - content_ignore: A code used to represent the ignoring Content for use in binary formats.
+ *   - content_start:  A code used to represent the start of Content for use in binary formats.
  */
 #ifndef _di_fss_extended_write_defines_
   #define fss_extended_write_signal_check_d 10000
 
+  #define FSS_EXTENDED_WRITE_pipe_name_s "(pipe)"
+
   #define FSS_EXTENDED_WRITE_pipe_content_end_s    "\f"
   #define FSS_EXTENDED_WRITE_pipe_content_ignore_s "\v"
   #define FSS_EXTENDED_WRITE_pipe_content_start_s  "\b"
 
+  #define FSS_EXTENDED_WRITE_pipe_name_s_length 6
+
   #define FSS_EXTENDED_WRITE_pipe_content_end_s_length    1
   #define FSS_EXTENDED_WRITE_pipe_content_ignore_s_length 1
   #define FSS_EXTENDED_WRITE_pipe_content_start_s_length  1
 
+  extern const f_string_static_t fss_extended_write_pipe_name_s;
+
   extern const f_string_static_t fss_extended_write_pipe_content_end_s;
   extern const f_string_static_t fss_extended_write_pipe_content_ignore_s;
   extern const f_string_static_t fss_extended_write_pipe_content_start_s;
index 72aad1bd6e4677cc1bd0a9b36de7fe00813ed913..a1bab6c5ed9dca78ccfd4f53b6816ee5461a3cbd 100644 (file)
@@ -187,7 +187,7 @@ extern "C" {
         }
       }
       else if (main->parameters.array[fss_extended_write_parameter_file_e].result == f_console_result_found_e) {
-        fss_extended_write_error_parameter_value_missing_print(main, f_console_symbol_long_enable_s,.string fss_extended_write_long_file_s);
+        fss_extended_write_error_parameter_value_missing_print(main, f_console_symbol_long_enable_s.string fss_extended_write_long_file_s);
         status = F_status_set_error(F_parameter);
       }
     }
@@ -409,18 +409,18 @@ extern "C" {
       }
     }
 
-    f_fss_quote_t quote = F_fss_delimit_quote_double_s;
+    f_fss_quote_t quote = f_fss_quote_type_double_e;
 
     if (F_status_is_error_not(status)) {
       if (main->parameters.array[fss_extended_write_parameter_double_e].result == f_console_result_found_e) {
         if (main->parameters.array[fss_extended_write_parameter_single_e].result == f_console_result_found_e) {
           if (main->parameters.array[fss_extended_write_parameter_double_e].location < main->parameters.array[fss_extended_write_parameter_single_e].location) {
-            quote = F_fss_delimit_quote_single_s;
+            quote = f_fss_quote_type_single_e;
           }
         }
       }
       else if (main->parameters.array[fss_extended_write_parameter_single_e].result == f_console_result_found_e) {
-        quote = F_fss_delimit_quote_single_s;
+        quote = f_fss_quote_type_single_e;
       }
     }
 
@@ -489,10 +489,7 @@ extern "C" {
 
               for (; i < main->parameters.array[fss_extended_write_parameter_content_e].values.used; ++i) {
 
-                contents.array[contents.used].string = argv[main->parameters.array[fss_extended_write_parameter_content_e].values.array[i]];
-                contents.array[contents.used].used = strnlen(contents.array[contents.used].string, F_console_parameter_size_d);
-                contents.array[contents.used].size = contents.array[contents.used].used;
-                ++contents.used;
+                contents.array[contents.used++] = argv[main->parameters.array[fss_extended_write_parameter_content_e].values.array[i]];
               } // for
 
               status = fss_extended_write_process(main, output, quote, 0, &contents, &buffer);
@@ -533,9 +530,7 @@ extern "C" {
               object_next = main->parameters.array[fss_extended_write_parameter_object_e].locations.array[i + 1];
             }
 
-            object.string = argv[main->parameters.array[fss_extended_write_parameter_object_e].values.array[i]];
-            object.used = strnlen(object.string, F_console_parameter_size_d);
-            object.size = object.used;
+            object = argv[main->parameters.array[fss_extended_write_parameter_object_e].values.array[i]];
 
             contents.used = 0;
 
index ae349cc6193bd1aea4ee130a2217029fd66d08cd..e0190fd7c26a1f0d31a9fc48b0f8cf75146e4d21 100644 (file)
@@ -230,21 +230,21 @@ extern "C" {
 
         for (; range.start <= range.stop; ++range.start) {
 
-          if (block.string[range.start] == fss_extended_write_pipe_content_start_s) {
+          if (block.string[range.start] == fss_extended_write_pipe_content_start_s.string[0]) {
             state = 0x2;
             ++range.start;
 
             break;
           }
 
-          if (block.string[range.start] == fss_extended_write_pipe_content_end_s) {
+          if (block.string[range.start] == fss_extended_write_pipe_content_end_s.string[0]) {
             state = 0x4;
             ++range.start;
 
             break;
           }
 
-          if (block.string[range.start] == fss_extended_write_pipe_content_ignore_s) {
+          if (block.string[range.start] == fss_extended_write_pipe_content_ignore_s.string[0]) {
 
             // This is not used by objects.
             continue;
@@ -287,7 +287,7 @@ extern "C" {
         if (total) {
           for (; range.start <= range.stop; ++range.start) {
 
-            if (block.string[range.start] == fss_extended_write_pipe_content_start_s) {
+            if (block.string[range.start] == fss_extended_write_pipe_content_start_s.string[0]) {
               if (contents.used + 1 > contents.size) {
                 status = f_string_dynamics_increase_by(F_fss_default_allocation_step_d, &contents);
 
@@ -303,14 +303,14 @@ extern "C" {
               continue;
             }
 
-            if (block.string[range.start] == fss_extended_write_pipe_content_end_s) {
+            if (block.string[range.start] == fss_extended_write_pipe_content_end_s.string[0]) {
               state = 0x4;
               ++range.start;
 
               break;
             }
 
-            if (block.string[range.start] == fss_extended_write_pipe_content_ignore_s) {
+            if (block.string[range.start] == fss_extended_write_pipe_content_ignore_s.string[0]) {
 
               // This is not used by this program.
               continue;
index 5cf85f819d7cc01ec93861d9295bd1dca8b8ac0d..96e7c22ad8d57223c24ee6a5806805c36017857d 100644 (file)
@@ -176,12 +176,12 @@ extern "C" {
       }
       else if (main->parameters.array[fss_identify_parameter_line_e].result == f_console_result_additional_e) {
         const f_array_length_t index = main->parameters.array[fss_identify_parameter_line_e].values.array[main->parameters.array[fss_identify_parameter_line_e].values.used - 1];
-        const f_string_range_t range = macro_f_string_range_t_initialize(strnlen(arguments->argv[index], F_console_parameter_size_d));
+        const f_string_range_t range = macro_f_string_range_t_initialize(argv[index].used);
 
-        status = fl_conversion_string_to_number_unsigned(arguments->argv[index], range, &data.line);
+        status = fl_conversion_string_to_number_unsigned(argv[index].string, range, &data.line);
 
         if (F_status_is_error(status)) {
-          fll_error_parameter_integer_print(main->error, F_status_set_fine(status), "fl_conversion_string_to_number_unsigned", F_true, fss_identify_long_line_s, arguments->argv[index]);
+          fll_error_parameter_integer_print(main->error, F_status_set_fine(status), "fl_conversion_string_to_number_unsigned", F_true, fss_identify_long_line_s, argv[index]);
         }
       }
     }
@@ -229,7 +229,7 @@ extern "C" {
       }
       else if (main->parameters.array[fss_identify_parameter_name_e].result == f_console_result_additional_e) {
         const f_array_length_t index = main->parameters.array[fss_identify_parameter_name_e].values.array[main->parameters.array[fss_identify_parameter_name_e].values.used - 1];
-        const f_array_length_t length = strnlen(arguments->argv[index], F_console_parameter_size_d);
+        const f_array_length_t length = argv[index].used;
         const f_string_range_t range = macro_f_string_range_t_initialize(length);
 
         if (length == 0) {
@@ -255,7 +255,7 @@ extern "C" {
 
           for (f_array_length_t i = range.start; i <= range.stop; ++i) {
 
-            status = f_utf_is_word(arguments->argv[index] + i, length, F_true);
+            status = f_utf_is_word(argv[index].string + i, length, F_true);
 
             if (F_status_is_error(status)) {
               fll_error_print(main->error, F_status_set_fine(status), "f_utf_is_word", F_true);
@@ -266,7 +266,7 @@ extern "C" {
               flockfile(main->error.to.stream);
 
               fl_print_format("%r%[%QThe value '%]", main->error.to.stream, f_string_eol_s, main->error.context, main->error.prefix, main->error.context);
-              fl_print_format("%[%S%]", main->error.to.stream, main->error.notable, arguments->argv[index], main->error.notable);
+              fl_print_format("%[%Q%]", main->error.to.stream, main->error.notable, argv[index], main->error.notable);
               fl_print_format("%[' for the parameter '%]", main->error.to.stream, main->error.context, main->error.context);
               fl_print_format("%[%r%r%]", main->error.to.stream, main->error.notable, f_console_symbol_long_enable_s, fss_identify_long_name_s, main->error.notable);
               fl_print_format("%[' may only contain word characters.%]%r", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s);
@@ -278,7 +278,7 @@ extern "C" {
               break;
             }
 
-            data.name.string[data.name.used++] = arguments->argv[index][i];
+            data.name.string[data.name.used++] = argv[index].string[i];
           } // for
         }
       }
@@ -322,16 +322,16 @@ extern "C" {
 
         file.size_read = 512;
 
-        status = f_file_stream_open(arguments->argv[main->parameters.remaining.array[i]], 0, &file);
+        status = f_file_stream_open(argv[main->parameters.remaining.array[i]], f_string_empty_s, &file);
 
         if (F_status_is_error(status)) {
-          fll_error_file_print(main->error, F_status_set_fine(status), "f_file_stream_open", F_true, arguments->argv[main->parameters.remaining.array[i]], f_file_operation_open_s, fll_error_file_type_file_e);
+          fll_error_file_print(main->error, F_status_set_fine(status), "f_file_stream_open", F_true, argv[main->parameters.remaining.array[i]], f_file_operation_open_s, fll_error_file_type_file_e);
         }
         else {
-          status = fss_identify_load_line(main, file, arguments->argv[main->parameters.remaining.array[i]], &buffer, &range);
+          status = fss_identify_load_line(main, file, argv[main->parameters.remaining.array[i]], &buffer, &range);
 
           if (F_status_is_error_not(status)) {
-            status = fss_identify_process(main, arguments->argv[main->parameters.remaining.array[i]], buffer, &range, &data);
+            status = fss_identify_process(main, argv[main->parameters.remaining.array[i]], buffer, &range, &data);
           }
         }
 
index 6c8c4d56baeb1dcbd9a386a6f5689962f8899a56..425f825dea741d99a45020603a4106929450eddc 100644 (file)
@@ -239,7 +239,7 @@ extern "C" {
     data.files.array = files_array;
     data.files.used = 1;
     data.files.size = main->parameters.remaining.used + 1;
-    data.files.array[0].name = "(pipe)";
+    data.files.array[0].name = fss_payload_read_pipe_name_s;
     data.files.array[0].range.start = 1;
     data.files.array[0].range.stop = 0;
 
@@ -572,10 +572,10 @@ extern "C" {
 
           // This standard is newline sensitive, when appending files to the buffer if the file lacks a final newline then this could break the format for files appended thereafter.
           // Guarantee that a newline exists at the end of the buffer.
-          status = f_string_append_assure(f_string_eol_s, 1, &data.buffer);
+          status = f_string_dynamic_append_assure(f_string_eol_s, &data.buffer);
 
           if (F_status_is_error(status)) {
-            fll_error_file_print(main->error, F_status_set_fine(status), "f_string_append_assure", F_true, f_string_ascii_s, f_file_operation_read_s, fll_error_file_type_pipe_e);
+            fll_error_file_print(main->error, F_status_set_fine(status), "f_string_append_assure", F_true, f_string_ascii_minus_s, f_file_operation_read_s, fll_error_file_type_pipe_e);
           }
         }
         else {
@@ -629,10 +629,10 @@ extern "C" {
             // Guarantee that a newline exists at the end of the buffer.
             // This is done as a pre-process on the next file because the "payload" must always be last and must not have a newline appended.
             if (buffer_used != data.buffer.used) {
-              status = f_string_append_assure(f_string_eol_s, 1, &data.buffer);
+              status = f_string_dynamic_append_assure(f_string_eol_s, &data.buffer);
 
               if (F_status_is_error(status)) {
-                fll_error_file_print(main->error, F_status_set_fine(status), "f_string_append_assure", F_true, f_string_ascii_s, f_file_operation_read_s, fll_error_file_type_pipe_e);
+                fll_error_file_print(main->error, F_status_set_fine(status), "f_string_append_assure", F_true, f_string_ascii_minus_s, f_file_operation_read_s, fll_error_file_type_pipe_e);
               }
             }
 
index 2506fd7651d053494bf13a526caa8dfab407b81b..1a8b98e1b881b9b3e37d3aa568b750bc786cd697 100644 (file)
@@ -255,7 +255,7 @@ extern "C" {
     f_status_t status = fll_fss_payload_read(data->buffer, state, &input, &data->objects, &data->contents, &data->delimits_object, &data->delimits_content, &data->comments);
 
     if (F_status_is_error(status)) {
-      const f_string_t file_name = fss_payload_read_file_identify(input.start, data->files);
+      const f_string_static_t file_name = fss_payload_read_file_identify(input.start, data->files);
 
       if (F_status_set_fine(status) == F_none || F_status_set_fine(status) == F_none_eos || F_status_set_fine(status) == F_none_stop || F_status_set_fine(status) == F_data_not_eos || F_status_set_fine(status) == F_data_not_stop) {
         if (main->error.verbosity != f_console_verbosity_quiet_e) {
@@ -300,7 +300,7 @@ extern "C" {
         status = fll_fss_extended_read(data->buffer, state, &input_header, &data->objects_header, &data->contents_header, &data->quotes_object_header, &data->quotes_content_header, &data->delimits_object_header, &data->delimits_content_header);
 
         if (F_status_is_error(status)) {
-          const f_string_t file_name = fss_payload_read_file_identify(input.start, data->files);
+          const f_string_static_t file_name = fss_payload_read_file_identify(input.start, data->files);
 
           fll_error_file_print(main->error, F_status_set_fine(status), "fll_fss_extended_read", F_true, file_name, f_file_operation_process_s, fll_error_file_type_file_e);
 
@@ -314,16 +314,16 @@ extern "C" {
 #endif // _di_fss_payload_read_load_
 
 #ifndef _di_fss_payload_read_load_number_
-  f_status_t fss_payload_read_load_number(fll_program_data_t * const main, const f_array_length_t parameter, const f_string_t name, const f_console_arguments_t *arguments, f_number_unsigned_t *number) {
+  f_status_t fss_payload_read_load_number(fll_program_data_t * const main, const f_array_length_t parameter, const f_string_static_t name, f_number_unsigned_t *number) {
 
     if (main->parameters.array[parameter].result == f_console_result_additional_e) {
       const f_array_length_t index = main->parameters.array[parameter].values.array[main->parameters.array[parameter].values.used - 1];
-      const f_string_range_t range = macro_f_string_range_t_initialize(strnlen(arguments->argv[index], F_console_parameter_size_d));
+      const f_string_range_t range = macro_f_string_range_t_initialize(strnlen(main->parameters.arguments.array[index], F_console_parameter_size_d));
 
-      const f_status_t status = fl_conversion_string_to_number_unsigned(arguments->argv[index], range, number);
+      const f_status_t status = fl_conversion_string_to_number_unsigned(main->parameters.arguments.array[index].string, range, number);
 
       if (F_status_is_error(status)) {
-        fll_error_parameter_integer_print(main->error, F_status_set_fine(status), "fl_conversion_string_to_number_unsigned", F_true, name, arguments->argv[index]);
+        fll_error_parameter_integer_print(main->error, F_status_set_fine(status), "fl_conversion_string_to_number_unsigned", F_true, name, main->parameters.arguments.array[index]);
 
         return status;
       }
@@ -1010,7 +1010,7 @@ extern "C" {
     if (main->parameters.array[fss_payload_read_parameter_line_e].result == f_console_result_additional_e) {
       data->option |= fss_payload_read_data_option_line_d;
 
-      status = fss_payload_read_load_number(main, fss_payload_read_parameter_line_e, fss_payload_read_long_line_s, arguments, &data->line);
+      status = fss_payload_read_load_number(main, fss_payload_read_parameter_line_e, fss_payload_read_long_line_s, &data->line);
       if (F_status_is_error(status)) return status;
     }
 
@@ -1029,7 +1029,7 @@ extern "C" {
     if (main->parameters.array[fss_payload_read_parameter_select_e].result == f_console_result_additional_e) {
       data->option |= fss_payload_read_data_option_select_d;
 
-      status = fss_payload_read_load_number(main, fss_payload_read_parameter_select_e, fss_payload_read_long_select_s, arguments, &data->select);
+      status = fss_payload_read_load_number(main, fss_payload_read_parameter_select_e, fss_payload_read_long_select_s, &data->select);
       if (F_status_is_error(status)) return status;
     }
 
index 1d35991daf050d2d86a712773c931033fe71bd2c..cfe60df149006951716ba57a2513bce7e0108e0f 100644 (file)
@@ -92,7 +92,7 @@ extern "C" {
  *   On failure to identify, an empty string is returned.
  */
 #ifndef _di_fss_payload_read_file_identify_
-  extern f_string_t fss_payload_read_file_identify(const f_array_length_t at, const fss_payload_read_files_t files) F_attribute_visibility_internal_d;
+  extern f_string_static_t fss_payload_read_file_identify(const f_array_length_t at, const fss_payload_read_files_t files) F_attribute_visibility_internal_d;
 #endif // _di_fss_payload_read_file_identify_
 
 /**
@@ -132,8 +132,6 @@ extern "C" {
  *   An ID representing the parameter.
  * @param name
  *   The parameter name to print on error.
- * @param arguments
- *   The console arguments passed to the program.
  * @param number
  *   The location to store the loaded number.
  *
@@ -148,7 +146,7 @@ extern "C" {
  * @see fss_payload_read_depths_resize()
  */
 #ifndef _di_fss_payload_read_load_number_
-  extern f_status_t fss_payload_read_load_number(fll_program_data_t * const main, const f_array_length_t parameter, const f_string_t name, const f_console_arguments_t *arguments, f_number_unsigned_t *number) F_attribute_visibility_internal_d;
+  extern f_status_t fss_payload_read_load_number(fll_program_data_t * const main, const f_array_length_t parameter, const f_string_static_t name, f_number_unsigned_t *number) F_attribute_visibility_internal_d;
 #endif // _di_fss_payload_read_load_number_
 
 /**
index 8b88fa656b386128c95850aa632a5ceb4a1724e0..77be49d7c7be88e0a98d2c25e82898f71aa790cf 100644 (file)
@@ -406,18 +406,18 @@ extern "C" {
       }
     }
 
-    f_fss_quote_t quote = F_fss_delimit_quote_double_s;
+    f_fss_quote_t quote = f_fss_quote_type_double_e;
 
     if (F_status_is_error_not(status)) {
       if (main->parameters.array[fss_payload_write_parameter_double_e].result == f_console_result_found_e) {
         if (main->parameters.array[fss_payload_write_parameter_single_e].result == f_console_result_found_e) {
           if (main->parameters.array[fss_payload_write_parameter_double_e].location < main->parameters.array[fss_payload_write_parameter_single_e].location) {
-            quote = F_fss_delimit_quote_single_s;
+            quote = f_fss_quote_type_single_e;
           }
         }
       }
       else if (main->parameters.array[fss_payload_write_parameter_single_e].result == f_console_result_found_e) {
-        quote = F_fss_delimit_quote_single_s;
+        quote = f_fss_quote_type_single_e;
       }
     }
 
index 0217d77fda898e9ba12d81e31107494a00025b3a..c2358b8758bebfebe6a653f9e09bfe6cedcc72f3 100644 (file)
@@ -239,21 +239,21 @@ extern "C" {
 
         for (; range.start <= range.stop; ++range.start) {
 
-          if (block.string[range.start] == fss_payload_write_pipe_content_start_s) {
+          if (block.string[range.start] == fss_payload_write_pipe_content_start_s.string[0]) {
             state = 0x2;
             ++range.start;
 
             break;
           }
 
-          if (block.string[range.start] == fss_payload_write_pipe_content_end_s) {
+          if (block.string[range.start] == fss_payload_write_pipe_content_end_s.string[0]) {
             state = 0x3;
             ++range.start;
 
             break;
           }
 
-          if (block.string[range.start] == fss_payload_write_pipe_content_ignore_s) {
+          if (block.string[range.start] == fss_payload_write_pipe_content_ignore_s.string[0]) {
 
             // This is not used by objects.
             continue;
@@ -320,7 +320,7 @@ extern "C" {
 
           for (; range.start <= range.stop; ++range.start) {
 
-            if (block.string[range.start] == fss_payload_write_pipe_content_start_s) {
+            if (block.string[range.start] == fss_payload_write_pipe_content_start_s.string[0]) {
               if (main->error.verbosity != f_console_verbosity_quiet_e) {
                 fll_print_format("%r%[%QThis standard only supports one content per object.%]%r", main->error.to.stream, f_string_eol_s, main->error.context, main->error.prefix, main->error.context, f_string_eol_s);
               }
@@ -330,14 +330,14 @@ extern "C" {
               break;
             }
 
-            if (block.string[range.start] == fss_payload_write_pipe_content_end_s) {
+            if (block.string[range.start] == fss_payload_write_pipe_content_end_s.string[0]) {
               state = 0x3;
               ++range.start;
 
               break;
             }
 
-            if (block.string[range.start] == fss_payload_write_pipe_content_ignore_s) {
+            if (block.string[range.start] == fss_payload_write_pipe_content_ignore_s.string[0]) {
 
               // This is not used by this program.
               continue;