]> Kevux Git Server - fll/commitdiff
Cleanup: the FSS read functions no longer need the buffer to be a pointer.
authorKevin Day <thekevinday@gmail.com>
Thu, 19 Nov 2020 02:50:16 +0000 (20:50 -0600)
committerKevin Day <thekevinday@gmail.com>
Thu, 19 Nov 2020 02:50:16 +0000 (20:50 -0600)
The delimits are no longer modified in place.
Make the buffer a constant static dynamic string.

Remove comment about updating the buffer, which is no longer correct.

30 files changed:
level_1/fl_fss/c/fss_basic.c
level_1/fl_fss/c/fss_basic.h
level_1/fl_fss/c/fss_basic_list.c
level_1/fl_fss/c/fss_basic_list.h
level_1/fl_fss/c/fss_embedded_list.c
level_1/fl_fss/c/fss_embedded_list.h
level_1/fl_fss/c/fss_extended.c
level_1/fl_fss/c/fss_extended.h
level_1/fl_fss/c/fss_extended_list.c
level_1/fl_fss/c/fss_extended_list.h
level_1/fl_fss/c/private-fss.c
level_1/fl_fss/c/private-fss.h
level_2/fll_fss/c/fss_basic.c
level_2/fll_fss/c/fss_basic.h
level_2/fll_fss/c/fss_basic_list.c
level_2/fll_fss/c/fss_basic_list.h
level_2/fll_fss/c/fss_embedded_list.c
level_2/fll_fss/c/fss_embedded_list.h
level_2/fll_fss/c/fss_extended.c
level_2/fll_fss/c/fss_extended.h
level_2/fll_fss/c/fss_extended_list.c
level_2/fll_fss/c/fss_extended_list.h
level_3/fake/c/private-build.c
level_3/fake/c/private-make.c
level_3/firewall/c/private-firewall.c
level_3/fss_basic_list_read/c/private-fss_basic_list_read.c
level_3/fss_basic_read/c/private-fss_basic_read.c
level_3/fss_embedded_list_read/c/private-fss_embedded_list_read.c
level_3/fss_extended_list_read/c/private-fss_extended_list_read.c
level_3/fss_extended_read/c/private-fss_extended_read.c

index 63a456941034c17bcdfaffc3cc9edbfbb55fe23d..28f73f270ada6659b92bcdb631fabc0329012a37 100644 (file)
@@ -6,9 +6,8 @@ extern "C" {
 #endif
 
 #ifndef _di_fl_fss_basic_object_read_
-  f_return_status fl_fss_basic_object_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_object_t *found, f_fss_quote_t *quote, f_fss_delimits_t *delimits) {
+  f_return_status fl_fss_basic_object_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_object_t *found, f_fss_quote_t *quote, f_fss_delimits_t *delimits) {
     #ifndef _di_level_1_parameter_checking_
-      if (!buffer) return F_status_set_error(F_parameter);
       if (!range) return F_status_set_error(F_parameter);
       if (!found) return F_status_set_error(F_parameter);
       if (!delimits) return F_status_set_error(F_parameter);
@@ -16,7 +15,7 @@ extern "C" {
 
     const f_array_length_t delimits_used = delimits->used;
 
-    f_status_t status = private_fl_fss_basic_read(F_true, buffer, range, found, quote, delimits);
+    f_status_t status = private_fl_fss_basic_read(buffer, F_true, range, found, quote, delimits);
 
     if (F_status_is_error(status)) {
       delimits->used = delimits_used;
@@ -28,15 +27,14 @@ extern "C" {
 #endif // _di_fl_fss_basic_object_read_
 
 #ifndef _di_fl_fss_basic_content_read_
-  f_return_status fl_fss_basic_content_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_content_t *found, f_fss_delimits_t *delimits) {
+  f_return_status fl_fss_basic_content_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_content_t *found, f_fss_delimits_t *delimits) {
     #ifndef _di_level_1_parameter_checking_
-      if (!buffer) return F_status_set_error(F_parameter);
       if (!range) return F_status_set_error(F_parameter);
       if (!found) return F_status_set_error(F_parameter);
       if (!delimits) return F_status_set_error(F_parameter);
     #endif // _di_level_1_parameter_checking_
 
-    f_status_t status = f_fss_skip_past_space(*buffer, range);
+    f_status_t status = f_fss_skip_past_space(buffer, range);
     if (F_status_is_error(status)) return status;
 
     if (status == F_none_eol) {
@@ -59,19 +57,19 @@ extern "C" {
 
     for (;; range->start++) {
 
-      status = f_fss_skip_past_delimit(*buffer, range);
+      status = f_fss_skip_past_delimit(buffer, range);
       if (F_status_is_error(status)) return status;
 
       if (status == F_none_eos || status == F_none_stop) {
         return status;
       }
 
-      if (buffer->string[range->start] == f_fss_basic_close) break;
+      if (buffer.string[range->start] == f_fss_basic_close) break;
     } // for
 
     found->array[found->used++].stop = range->start - 1;
 
-    status = f_utf_buffer_increment(*buffer, range, 1);
+    status = f_utf_buffer_increment(buffer, range, 1);
     if (F_status_is_error(status)) return status;
 
     return FL_fss_found_content;
index 4070fd9cc06ca68c871969c145295955c0c4d091..31fe6fe2ff902269099165be48207286dc68375b 100644 (file)
@@ -38,7 +38,6 @@ extern "C" {
  *
  * @param buffer
  *   The buffer to read from.
- *   This will be updated with delimit placeholders as it is being processed.
  * @param range
  *   The start/stop location within the buffer to be processed.
  *   The start location will be updated as the buffer is being processed.
@@ -72,7 +71,7 @@ extern "C" {
  *   Errors (with error bit) from: f_fss_skip_past_space().
  */
 #ifndef _di_fl_fss_basic_object_read_
-  extern f_return_status fl_fss_basic_object_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_object_t *found, f_fss_quote_t *quote, f_fss_delimits_t *delimits);
+  extern f_return_status fl_fss_basic_object_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_object_t *found, f_fss_quote_t *quote, f_fss_delimits_t *delimits);
 #endif // _di_fl_fss_basic_object_read_
 
 /**
@@ -82,7 +81,6 @@ extern "C" {
  *
  * @param buffer
  *   The buffer to read from.
- *   This will be updated with delimit placeholders as it is being processed.
  * @param range
  *   The start/stop location within the buffer to be processed.
  *   The start location will be updated as the buffer is being processed.
@@ -109,7 +107,7 @@ extern "C" {
  *   Errors (with error bit) from: f_fss_skip_past_space().
  */
 #ifndef _di_fl_fss_basic_content_read_
-  extern f_return_status fl_fss_basic_content_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_content_t *found, f_fss_delimits_t *delimits);
+  extern f_return_status fl_fss_basic_content_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_content_t *found, f_fss_delimits_t *delimits);
 #endif // _di_fl_fss_basic_content_read_
 
 /**
index 5156313b0b841060239aa199e9ee7b6823f0e9dd..93cd65218bb79d334f9f477956624b17e1d29663 100644 (file)
@@ -6,9 +6,8 @@ extern "C" {
 #endif
 
 #ifndef _di_fl_fss_basic_list_object_read_
-  f_return_status fl_fss_basic_list_object_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_object_t *found, f_fss_delimits_t *delimits) {
+  f_return_status fl_fss_basic_list_object_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_object_t *found, f_fss_delimits_t *delimits) {
     #ifndef _di_level_1_parameter_checking_
-      if (!buffer) return F_status_set_error(F_parameter);
       if (!range) return F_status_set_error(F_parameter);
       if (!found) return F_status_set_error(F_parameter);
       if (!delimits) return F_status_set_error(F_parameter);
@@ -16,7 +15,7 @@ extern "C" {
 
     const f_array_length_t delimits_used = delimits->used;
 
-    f_status_t status = f_fss_skip_past_space(*buffer, range);
+    f_status_t status = f_fss_skip_past_space(buffer, range);
     if (F_status_is_error(status)) return status;
 
     if (status == F_none_eol) {
@@ -39,9 +38,9 @@ extern "C" {
     found->start = range->start;
 
     // ignore all comment lines.
-    if (buffer->string[range->start] == f_fss_comment) {
+    if (buffer.string[range->start] == f_fss_comment) {
 
-      status = f_fss_seek_to_eol(*buffer, range);
+      status = f_fss_seek_to_eol(buffer, range);
       if (F_status_is_error(status)) return status;
 
       if (status == F_none_eos) {
@@ -66,48 +65,48 @@ extern "C" {
     bool graph_first = F_true;
 
     // identify where the object ends.
-    while (range->start <= range->stop && range->start < buffer->used && buffer->string[range->start] != f_fss_eol) {
+    while (range->start <= range->stop && range->start < buffer.used && buffer.string[range->start] != f_fss_eol) {
 
-      if (buffer->string[range->start] == f_fss_delimit_slash) {
+      if (buffer.string[range->start] == f_fss_delimit_slash) {
         slash_first = range->start;
         slash_count = 1;
 
-        for (range->start++; range->start <= range->stop && range->start < buffer->used; range->start++) {
+        for (range->start++; range->start <= range->stop && range->start < buffer.used; range->start++) {
 
-          if (buffer->string[range->start] == f_fss_delimit_placeholder) {
+          if (buffer.string[range->start] == f_fss_delimit_placeholder) {
             continue;
-          } else if (buffer->string[range->start] != f_fss_delimit_slash) {
+          } else if (buffer.string[range->start] != f_fss_delimit_slash) {
             break;
           }
 
           slash_count++;
         } // for
 
-        fl_macro_fss_object_return_on_overflow((*buffer), (*range), (*found), (*delimits), delimits_used, F_data_not_eos, F_data_not_stop);
+        fl_macro_fss_object_return_on_overflow((buffer), (*range), (*found), (*delimits), delimits_used, F_data_not_eos, F_data_not_stop);
 
-        if (buffer->string[range->start] == f_fss_basic_list_open) {
+        if (buffer.string[range->start] == f_fss_basic_list_open) {
           graph_first = F_false;
           stop = range->start - 1;
 
-          status = f_utf_buffer_increment(*buffer, range, 1);
+          status = f_utf_buffer_increment(buffer, range, 1);
           if (F_status_is_error(status)) return status;
 
-          while (range->start <= range->stop && range->start < buffer->used) {
+          while (range->start <= range->stop && range->start < buffer.used) {
 
-            if (buffer->string[range->start] == f_fss_eol) break;
+            if (buffer.string[range->start] == f_fss_eol) break;
 
-            status = f_fss_is_space(*buffer, *range);
+            status = f_fss_is_space(buffer, *range);
             if (F_status_is_error(status)) break;
 
             if (status == F_false) break;
 
-            status = f_utf_buffer_increment(*buffer, range, 1);
+            status = f_utf_buffer_increment(buffer, range, 1);
             if (F_status_is_error(status)) break;
           } // while
 
-          fl_macro_fss_object_return_on_overflow((*buffer), (*range), (*found), (*delimits), delimits_used, F_data_not_eos, F_data_not_stop);
+          fl_macro_fss_object_return_on_overflow((buffer), (*range), (*found), (*delimits), delimits_used, F_data_not_eos, F_data_not_stop);
 
-          if (buffer->string[range->start] == f_fss_eol) {
+          if (buffer.string[range->start] == f_fss_eol) {
             start = range->start;
 
             range->start = slash_first;
@@ -118,7 +117,7 @@ extern "C" {
             if (slash_count % 2 == 0) {
               while (slash_count > 0) {
 
-                if (buffer->string[range->start] == f_fss_delimit_slash) {
+                if (buffer.string[range->start] == f_fss_delimit_slash) {
                   if (slash_count % 2 == 1) {
                     delimits->array[delimits->used] = range->start;
                     delimits->used++;
@@ -127,7 +126,7 @@ extern "C" {
                   slash_count--;
                 }
 
-                status = f_utf_buffer_increment(*buffer, range, 1);
+                status = f_utf_buffer_increment(buffer, range, 1);
 
                 if (F_status_is_error(status)) {
                   delimits->used = delimits_used;
@@ -145,7 +144,7 @@ extern "C" {
             return FL_fss_found_object_not;
           }
         }
-        else if (graph_first && buffer->string[range->start] == f_fss_comment) {
+        else if (graph_first && buffer.string[range->start] == f_fss_comment) {
           graph_first = F_false;
 
           // comments may only have whitespace before the '#', therefore only the first slash needs to be delimited.
@@ -161,32 +160,32 @@ extern "C" {
 
         continue;
       }
-      else if (buffer->string[range->start] == f_fss_basic_list_open) {
+      else if (buffer.string[range->start] == f_fss_basic_list_open) {
         graph_first = F_false;
         stop = range->start - 1;
 
-        status = f_utf_buffer_increment(*buffer, range, 1);
+        status = f_utf_buffer_increment(buffer, range, 1);
         if (F_status_is_error(status)) break;
 
-        while (range->start <= range->stop && range->start < buffer->used) {
+        while (range->start <= range->stop && range->start < buffer.used) {
 
-          if (buffer->string[range->start] == f_fss_eol) break;
+          if (buffer.string[range->start] == f_fss_eol) break;
 
-          status = f_fss_is_space(*buffer, *range);
+          status = f_fss_is_space(buffer, *range);
           if (F_status_is_error(status)) break;
 
           if (status == F_false) break;
 
-          status = f_utf_buffer_increment(*buffer, range, 1);
+          status = f_utf_buffer_increment(buffer, range, 1);
           if (F_status_is_error(status)) break;
         } // while
 
-        fl_macro_fss_object_return_on_overflow_delimited((*buffer), (*range), (*found), F_none_eos, F_none_stop);
+        fl_macro_fss_object_return_on_overflow_delimited((buffer), (*range), (*found), F_none_eos, F_none_stop);
 
-        if (buffer->string[range->start] == f_fss_eol) {
+        if (buffer.string[range->start] == f_fss_eol) {
           found->stop = stop;
 
-          status = f_utf_buffer_increment(*buffer, range, 1);
+          status = f_utf_buffer_increment(buffer, range, 1);
           if (F_status_is_error(status)) break;
 
           return FL_fss_found_object;
@@ -195,7 +194,7 @@ extern "C" {
         continue;
       }
       else if (graph_first) {
-        status = f_fss_is_space(*buffer, *range);
+        status = f_fss_is_space(buffer, *range);
         if (F_status_is_error(status)) break;
 
         if (status == F_false) {
@@ -203,7 +202,7 @@ extern "C" {
         }
       }
 
-      status = f_utf_buffer_increment(*buffer, range, 1);
+      status = f_utf_buffer_increment(buffer, range, 1);
       if (F_status_is_error(status)) break;
     } // while
 
@@ -221,7 +220,7 @@ extern "C" {
     }
 
     // seek to the end of the line when no valid object is found.
-    status = f_fss_seek_to_eol(*buffer, range);
+    status = f_fss_seek_to_eol(buffer, range);
 
     // move the start position to after the EOL.
     range->start++;
@@ -231,9 +230,8 @@ extern "C" {
 #endif // _di_fl_fss_basic_list_object_read_
 
 #ifndef _di_fl_fss_basic_list_content_read_
-  f_return_status fl_fss_basic_list_content_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_content_t *found, f_fss_delimits_t *delimits, f_fss_comments_t *comments) {
+  f_return_status fl_fss_basic_list_content_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_content_t *found, f_fss_delimits_t *delimits, f_fss_comments_t *comments) {
     #ifndef _di_level_1_parameter_checking_
-      if (!buffer) return F_status_set_error(F_parameter);
       if (!range) return F_status_set_error(F_parameter);
       if (!found) return F_status_set_error(F_parameter);
       if (!delimits) return F_status_set_error(F_parameter);
@@ -243,10 +241,10 @@ extern "C" {
     const f_array_length_t delimits_used = delimits->used;
     const f_array_length_t comments_used = comments->used;
 
-    f_status_t status = f_fss_skip_past_delimit(*buffer, range);
+    f_status_t status = f_fss_skip_past_delimit(buffer, range);
     if (F_status_is_error(status)) return status;
 
-    fl_macro_fss_content_with_comments_return_on_overflow((*buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, F_none_eos, F_none_stop);
+    fl_macro_fss_content_with_comments_return_on_overflow((buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, F_none_eos, F_none_stop);
 
     status = private_fl_fss_ranges_increase(found);
     if (F_status_is_error(status)) return status;
@@ -262,9 +260,9 @@ extern "C" {
     uint8_t graph_first = 0x1; // 0x0 = false, 0x1 = true, 0x2 = false, but there is a delimited comment, comment_delimit is set.
 
     // identify where the content ends.
-    while (range->start <= range->stop && range->start < buffer->used) {
+    while (range->start <= range->stop && range->start < buffer.used) {
 
-      if (buffer->string[range->start] == f_fss_eol) {
+      if (buffer.string[range->start] == f_fss_eol) {
         if (graph_first == 0x2) {
           status = private_fl_fss_delimits_increase(delimits);
           if (F_status_is_error(status)) break;
@@ -278,43 +276,43 @@ extern "C" {
         continue;
       }
 
-      if (buffer->string[range->start] == f_fss_delimit_slash) {
+      if (buffer.string[range->start] == f_fss_delimit_slash) {
         slash_first = range->start;
         slash_count = 1;
 
-        for (range->start++; range->start <= range->stop && range->start < buffer->used; range->start++) {
+        for (range->start++; range->start <= range->stop && range->start < buffer.used; range->start++) {
 
-          if (buffer->string[range->start] == f_fss_delimit_placeholder) {
+          if (buffer.string[range->start] == f_fss_delimit_placeholder) {
             continue;
-          } else if (buffer->string[range->start] != f_fss_delimit_slash) {
+          } else if (buffer.string[range->start] != f_fss_delimit_slash) {
             break;
           }
 
           slash_count++;
         } // for
 
-        if (range->start > range->stop || range->start >= buffer->used) break;
+        if (range->start > range->stop || range->start >= buffer.used) break;
 
-        if (buffer->string[range->start] == f_fss_basic_list_open) {
+        if (buffer.string[range->start] == f_fss_basic_list_open) {
           graph_first = 0x0;
           range->start++;
 
-          while (range->start <= range->stop && range->start < buffer->used) {
+          while (range->start <= range->stop && range->start < buffer.used) {
 
-            if (buffer->string[range->start] == f_fss_eol) break;
+            if (buffer.string[range->start] == f_fss_eol) break;
 
-            status = f_fss_is_space(*buffer, *range);
+            status = f_fss_is_space(buffer, *range);
             if (F_status_is_error(status)) break;
 
             if (status == F_false) break;
 
-            status = f_utf_buffer_increment(*buffer, range, 1);
+            status = f_utf_buffer_increment(buffer, range, 1);
             if (F_status_is_error(status)) break;
           } // while
 
-          if (range->start > range->stop || range->start >= buffer->used) break;
+          if (range->start > range->stop || range->start >= buffer.used) break;
 
-          if (buffer->string[range->start] == f_fss_eol) {
+          if (buffer.string[range->start] == f_fss_eol) {
             start = range->start;
             range->start = slash_first;
 
@@ -330,7 +328,7 @@ extern "C" {
 
             while (slash_count > 0) {
 
-              if (buffer->string[range->start] == f_fss_delimit_slash) {
+              if (buffer.string[range->start] == f_fss_delimit_slash) {
                 if (slash_count % 2 == 1) {
                   delimits->array[delimits->used++] = range->start;
                 }
@@ -338,7 +336,7 @@ extern "C" {
                 slash_count--;
               }
 
-              status = f_utf_buffer_increment(*buffer, range, 1);
+              status = f_utf_buffer_increment(buffer, range, 1);
               if (F_status_is_error(status)) break;
             } // while
 
@@ -355,7 +353,7 @@ extern "C" {
             range->start = start + 1;
           }
         }
-        else if (graph_first == 0x1 && buffer->string[range->start] == f_fss_comment) {
+        else if (graph_first == 0x1 && buffer.string[range->start] == f_fss_comment) {
           graph_first = 0x2;
           comment_delimit = slash_first;
           range->start++;
@@ -364,31 +362,31 @@ extern "C" {
         continue;
       }
 
-      if (buffer->string[range->start] == f_fss_basic_list_open) {
+      if (buffer.string[range->start] == f_fss_basic_list_open) {
         range->start++;
         graph_first = 0x0;
 
-        while (range->start <= range->stop && range->start < buffer->used) {
+        while (range->start <= range->stop && range->start < buffer.used) {
 
-          if (buffer->string[range->start] == f_fss_eol) break;
+          if (buffer.string[range->start] == f_fss_eol) break;
 
-          status = f_fss_is_space(*buffer, *range);
+          status = f_fss_is_space(buffer, *range);
           if (F_status_is_error(status)) break;
 
           if (status == F_false) break;
 
-          status = f_utf_buffer_increment(*buffer, range, 1);
+          status = f_utf_buffer_increment(buffer, range, 1);
           if (F_status_is_error(status)) break;
         } // while
 
         if (F_status_is_error(status)) break;
 
-        if (range->start > range->stop || range->start >= buffer->used) break;
+        if (range->start > range->stop || range->start >= buffer.used) break;
 
         // found a valid object, set stop point to last newline.
-        if (buffer->string[range->start] == f_fss_eol) {
+        if (buffer.string[range->start] == f_fss_eol) {
 
-          if (newline_last == found->array[found->used].start && buffer->string[found->array[found->used].start] != f_fss_eol) {
+          if (newline_last == found->array[found->used].start && buffer.string[found->array[found->used].start] != f_fss_eol) {
             range->start = newline_last;
             return FL_fss_found_content_not;
           }
@@ -400,7 +398,7 @@ extern "C" {
           return FL_fss_found_content;
         }
 
-        if (buffer->string[range->start] == f_fss_eol) {
+        if (buffer.string[range->start] == f_fss_eol) {
           if (graph_first == 0x2) {
             status = private_fl_fss_delimits_increase(delimits);
             if (F_status_is_error(status)) break;
@@ -415,16 +413,16 @@ extern "C" {
         continue;
       }
 
-      if (graph_first == 0x1 && buffer->string[range->start] == f_fss_comment) {
+      if (graph_first == 0x1 && buffer.string[range->start] == f_fss_comment) {
         start = range->start;
 
-        status = f_fss_seek_to_eol(*buffer, range);
+        status = f_fss_seek_to_eol(buffer, range);
         if (F_status_is_error(status)) break;
 
         status = private_fl_fss_ranges_increase(comments);
         if (F_status_is_error(status)) break;
 
-        if (range->start > range->stop || range->start >= buffer->used) {
+        if (range->start > range->stop || range->start >= buffer.used) {
           range->start--;
         }
         else {
@@ -437,7 +435,7 @@ extern "C" {
       }
 
       if (graph_first == 0x1) {
-        status = f_fss_is_space(*buffer, *range);
+        status = f_fss_is_space(buffer, *range);
         if (F_status_is_error(status)) break;
 
         if (status == F_false) {
@@ -445,7 +443,7 @@ extern "C" {
         }
       }
 
-      status = f_utf_buffer_increment(*buffer, range, 1);
+      status = f_utf_buffer_increment(buffer, range, 1);
       if (F_status_is_error(status)) break;
     } // while
 
@@ -457,7 +455,7 @@ extern "C" {
 
     found->array[found->used++].stop = range->start - 1;
 
-    fl_macro_fss_content_return_on_overflow_delimited((*buffer), (*range), (*found), F_none_eos, F_none_stop);
+    fl_macro_fss_content_return_on_overflow_delimited((buffer), (*range), (*found), F_none_eos, F_none_stop);
 
     return FL_fss_found_content;
   }
index 962711ca3a762ced5de05363a53a7c826daba312..3a988e023a7d196d72995b235883c78e496254d1 100644 (file)
@@ -39,7 +39,6 @@ extern "C" {
  *
  * @param buffer
  *   The buffer to read from.
- *   This will be updated with delimit placeholders as it is being processed.
  * @param range
  *   The start/stop location within the buffer to be processed.
  *   The start location will be updated as the buffer is being processed.
@@ -74,7 +73,7 @@ extern "C" {
  *   Errors (with error bit) from: f_fss_skip_past_space().
  */
 #ifndef _di_fl_fss_basic_list_object_read_
-  extern f_return_status fl_fss_basic_list_object_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_object_t *found, f_fss_delimits_t *delimits);
+  extern f_return_status fl_fss_basic_list_object_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_object_t *found, f_fss_delimits_t *delimits);
 #endif // _di_fl_fss_basic_list_object_read_
 
 /**
@@ -84,7 +83,6 @@ extern "C" {
  *
  * @param buffer
  *   The buffer to read from.
- *   This will be updated with delimit placeholders as it is being processed.
  * @param range
  *   The start/stop location within the buffer to be processed.
  *   The start location will be updated as the buffer is being processed.
@@ -123,7 +121,7 @@ extern "C" {
  *   Errors (with error bit) from: f_fss_skip_past_space().
  */
 #ifndef _di_fl_fss_basic_list_content_read_
-  extern f_return_status fl_fss_basic_list_content_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_content_t *found, f_fss_delimits_t *delimits, f_fss_comments_t *comments);
+  extern f_return_status fl_fss_basic_list_content_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_content_t *found, f_fss_delimits_t *delimits, f_fss_comments_t *comments);
 #endif // _di_fl_fss_basic_list_content_read_
 
 /**
index 24d2107aeafbbb155a904e75383c1ae1d4a1124e..bbbe0ae789ba091a7e4fe79a5caa3280f4ff6c49 100644 (file)
@@ -6,9 +6,8 @@ extern "C" {
 #endif
 
 #ifndef _di_fl_fss_embedded_list_object_read_
-  f_return_status fl_fss_embedded_list_object_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_object_t *found, f_fss_delimits_t *delimits) {
+  f_return_status fl_fss_embedded_list_object_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_object_t *found, f_fss_delimits_t *delimits) {
     #ifndef _di_level_1_parameter_checking_
-      if (!buffer) return F_status_set_error(F_parameter);
       if (!range) return F_status_set_error(F_parameter);
       if (!found) return F_status_set_error(F_parameter);
       if (!delimits) return F_status_set_error(F_parameter);
@@ -16,7 +15,7 @@ extern "C" {
 
     const f_array_length_t delimits_used = delimits->used;
 
-    f_status_t status = f_fss_skip_past_space(*buffer, range);
+    f_status_t status = f_fss_skip_past_space(buffer, range);
     if (F_status_is_error(status)) return status;
 
     if (status == F_none_eol) {
@@ -36,7 +35,7 @@ extern "C" {
     }
 
     // return found nothing if this line only contains whitespace and delimit placeholders.
-    if (buffer->string[range->start] == f_fss_eol) {
+    if (buffer.string[range->start] == f_fss_eol) {
 
       // move the start position to after the EOL.
       range->start++;
@@ -48,8 +47,8 @@ extern "C" {
     found->start = range->start;
 
     // ignore all comment lines.
-    if (buffer->string[range->start] == f_fss_comment) {
-      status = f_fss_seek_to_eol(*buffer, range);
+    if (buffer.string[range->start] == f_fss_comment) {
+      status = f_fss_seek_to_eol(buffer, range);
 
       if (F_status_is_error(status)) {
         delimits->used = delimits_used;
@@ -78,48 +77,48 @@ extern "C" {
     bool graph_first = F_true;
 
     // identify where the object ends.
-    while (range->start <= range->stop && range->start < buffer->used && buffer->string[range->start] != f_fss_eol) {
+    while (range->start <= range->stop && range->start < buffer.used && buffer.string[range->start] != f_fss_eol) {
 
-      if (buffer->string[range->start] == f_fss_delimit_slash) {
+      if (buffer.string[range->start] == f_fss_delimit_slash) {
         slash_first = range->start;
         slash_count = 1;
 
-        status = f_utf_buffer_increment(*buffer, range, 1);
+        status = f_utf_buffer_increment(buffer, range, 1);
         if (F_status_is_error(status)) break;
 
-        while (range->start <= range->stop && range->start < buffer->used && (buffer->string[range->start] == f_fss_delimit_placeholder || buffer->string[range->start] == f_fss_delimit_slash)) {
+        while (range->start <= range->stop && range->start < buffer.used && (buffer.string[range->start] == f_fss_delimit_placeholder || buffer.string[range->start] == f_fss_delimit_slash)) {
 
-          if (buffer->string[range->start] == f_fss_delimit_slash) slash_count++;
+          if (buffer.string[range->start] == f_fss_delimit_slash) slash_count++;
 
-          status = f_utf_buffer_increment(*buffer, range, 1);
+          status = f_utf_buffer_increment(buffer, range, 1);
           if (F_status_is_error(status)) break;
         } // while
 
         if (F_status_is_error(status)) break;
 
-        fl_macro_fss_object_return_on_overflow((*buffer), (*range), (*found), (*delimits), delimits_used, F_data_not_eos, F_data_not_stop);
+        fl_macro_fss_object_return_on_overflow((buffer), (*range), (*found), (*delimits), delimits_used, F_data_not_eos, F_data_not_stop);
 
-        if (buffer->string[range->start] == f_fss_embedded_list_open) {
+        if (buffer.string[range->start] == f_fss_embedded_list_open) {
           graph_first = F_false;
           stop = range->start - 1;
           range->start++;
 
-          while (range->start <= range->stop && range->start < buffer->used) {
+          while (range->start <= range->stop && range->start < buffer.used) {
 
-            if (buffer->string[range->start] == f_fss_eol) break;
+            if (buffer.string[range->start] == f_fss_eol) break;
 
-            status = f_fss_is_graph(*buffer, *range);
+            status = f_fss_is_graph(buffer, *range);
             if (F_status_is_error(status)) break;
 
             if (status == F_true) break;
 
-            status = f_utf_buffer_increment(*buffer, range, 1);
+            status = f_utf_buffer_increment(buffer, range, 1);
             if (F_status_is_error(status)) break;
           } // while
 
-          fl_macro_fss_object_return_on_overflow((*buffer), (*range), (*found), (*delimits), delimits_used, F_data_not_eos, F_data_not_stop);
+          fl_macro_fss_object_return_on_overflow((buffer), (*range), (*found), (*delimits), delimits_used, F_data_not_eos, F_data_not_stop);
 
-          if (buffer->string[range->start] == f_fss_eol) {
+          if (buffer.string[range->start] == f_fss_eol) {
             start = range->start;
 
             range->start = slash_first;
@@ -130,7 +129,7 @@ extern "C" {
             if (slash_count % 2 == 0) {
               while (slash_count > 0) {
 
-                if (buffer->string[range->start] == f_fss_delimit_slash) {
+                if (buffer.string[range->start] == f_fss_delimit_slash) {
                   if (slash_count % 2 == 1) {
                     delimits->array[delimits->used] = range->start;
                     delimits->used++;
@@ -139,7 +138,7 @@ extern "C" {
                   slash_count--;
                 }
 
-                status = f_utf_buffer_increment(*buffer, range, 1);
+                status = f_utf_buffer_increment(buffer, range, 1);
                 if (F_status_is_error(status)) break;
               } // while
 
@@ -155,7 +154,7 @@ extern "C" {
             return FL_fss_found_object_not;
           }
         }
-        else if (graph_first && buffer->string[range->start] == f_fss_comment) {
+        else if (graph_first && buffer.string[range->start] == f_fss_comment) {
           graph_first = F_false;
 
           // comments may only have whitespace before the '#', therefore only the first slash needs to be delimited.
@@ -171,31 +170,31 @@ extern "C" {
 
         continue;
       }
-      else if (buffer->string[range->start] == f_fss_embedded_list_open) {
+      else if (buffer.string[range->start] == f_fss_embedded_list_open) {
         graph_first = F_false;
         stop = range->start - 1;
 
-        status = f_utf_buffer_increment(*buffer, range, 1);
+        status = f_utf_buffer_increment(buffer, range, 1);
         if (F_status_is_error(status)) break;
 
-        while (range->start <= range->stop && range->start < buffer->used) {
+        while (range->start <= range->stop && range->start < buffer.used) {
 
-          if (buffer->string[range->start] == f_fss_eol) break;
+          if (buffer.string[range->start] == f_fss_eol) break;
 
-          status = f_fss_is_space(*buffer, *range);
+          status = f_fss_is_space(buffer, *range);
           if (F_status_is_error(status)) break;
 
           if (status == F_false) break;
 
-          status = f_utf_buffer_increment(*buffer, range, 1);
+          status = f_utf_buffer_increment(buffer, range, 1);
           if (F_status_is_error(status)) break;
         } // while
 
         if (F_status_is_error(status)) break;
 
-        fl_macro_fss_object_return_on_overflow_delimited((*buffer), (*range), (*found), F_none_eos, F_none_stop);
+        fl_macro_fss_object_return_on_overflow_delimited((buffer), (*range), (*found), F_none_eos, F_none_stop);
 
-        if (buffer->string[range->start] == f_fss_eol) {
+        if (buffer.string[range->start] == f_fss_eol) {
           found->stop = stop;
 
           // move the start position to after the EOL.
@@ -207,7 +206,7 @@ extern "C" {
         continue;
       }
       else if (graph_first) {
-        status = f_fss_is_space(*buffer, *range);
+        status = f_fss_is_space(buffer, *range);
         if (F_status_is_error(status)) break;
 
         if (status == F_false) {
@@ -215,7 +214,7 @@ extern "C" {
         }
       }
 
-      status = f_utf_buffer_increment(*buffer, range, 1);
+      status = f_utf_buffer_increment(buffer, range, 1);
       if (F_status_is_error(status)) break;
     } // while
 
@@ -225,9 +224,9 @@ extern "C" {
     }
 
     // seek to the end of the line when no valid object is found.
-    while (range->start <= range->stop && range->start < buffer->used && buffer->string[range->start] != f_fss_eol) {
+    while (range->start <= range->stop && range->start < buffer.used && buffer.string[range->start] != f_fss_eol) {
 
-      status = f_utf_buffer_increment(*buffer, range, 1);
+      status = f_utf_buffer_increment(buffer, range, 1);
 
       if (F_status_is_error(status)) {
         delimits->used = delimits_used;
@@ -235,9 +234,9 @@ extern "C" {
       }
     } // while
 
-    fl_macro_fss_object_return_on_overflow((*buffer), (*range), (*found), (*delimits), delimits_used, F_data_not_eos, F_data_not_stop);
+    fl_macro_fss_object_return_on_overflow((buffer), (*range), (*found), (*delimits), delimits_used, F_data_not_eos, F_data_not_stop);
 
-    status = f_utf_buffer_increment(*buffer, range, 1);
+    status = f_utf_buffer_increment(buffer, range, 1);
 
     if (F_status_is_error(status)) {
       delimits->used = delimits_used;
@@ -249,9 +248,8 @@ extern "C" {
 #endif // _di_fl_fss_embedded_list_object_read_
 
 #ifndef _di_fl_fss_embedded_list_content_read_
-  f_return_status fl_fss_embedded_list_content_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_nest_t *found, f_fss_delimits_t *delimits, f_fss_comments_t *comments) {
+  f_return_status fl_fss_embedded_list_content_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_nest_t *found, f_fss_delimits_t *delimits, f_fss_comments_t *comments) {
     #ifndef _di_level_1_parameter_checking_
-      if (!buffer) return F_status_set_error(F_parameter);
       if (!range) return F_status_set_error(F_parameter);
       if (!found) return F_status_set_error(F_parameter);
       if (!delimits) return F_status_set_error(F_parameter);
@@ -260,7 +258,7 @@ extern "C" {
 
     const f_array_length_t found_used = found->used;
 
-    f_status_t status = f_fss_skip_past_delimit(*buffer, range);
+    f_status_t status = f_fss_skip_past_delimit(buffer, range);
     if (F_status_is_error(status)) return status;
 
     if (status == F_none_eos || status == F_none_stop) {
@@ -311,9 +309,9 @@ extern "C" {
     positions_start.array[0] = range->start;
     positions_start.used = 1;
 
-    while (range->start <= range->stop && range->start < buffer->used) {
+    while (range->start <= range->stop && range->start < buffer.used) {
 
-      if (buffer->string[range->start] == f_fss_eol) {
+      if (buffer.string[range->start] == f_fss_eol) {
         if (graph_first == 0x2) {
           status = private_fl_fss_delimits_increase(delimits);
           if (F_status_is_error(status)) break;
@@ -326,44 +324,44 @@ extern "C" {
         graph_first = 0x1;
 
         if (depth > 0) {
-          fl_macro_fss_nest_return_on_overflow((*buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_unterminated_nest_eos, F_unterminated_nest_stop);
+          fl_macro_fss_nest_return_on_overflow((buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_unterminated_nest_eos, F_unterminated_nest_stop);
         }
         else {
-          fl_macro_fss_nest_return_on_overflow_delimited((*buffer), (*range), (*found), positions_start, objects, F_none_eos, F_none_stop);
+          fl_macro_fss_nest_return_on_overflow_delimited((buffer), (*range), (*found), positions_start, objects, F_none_eos, F_none_stop);
         }
 
         line_start = range->start;
         continue;
       }
 
-      if (buffer->string[range->start] == f_fss_delimit_slash) {
+      if (buffer.string[range->start] == f_fss_delimit_slash) {
         slash_first = range->start;
         slash_last = range->start;
         slash_count = 1;
 
         position_previous = range->start;
 
-        status = f_utf_buffer_increment(*buffer, range, 1);
+        status = f_utf_buffer_increment(buffer, range, 1);
         if (F_status_is_error(status)) break;
 
-        while (range->start <= range->stop && range->start < buffer->used && (buffer->string[range->start] == f_fss_delimit_placeholder || buffer->string[range->start] == f_fss_delimit_slash)) {
+        while (range->start <= range->stop && range->start < buffer.used && (buffer.string[range->start] == f_fss_delimit_placeholder || buffer.string[range->start] == f_fss_delimit_slash)) {
           position_previous = range->start;
 
-          if (buffer->string[range->start] == f_fss_delimit_slash) {
+          if (buffer.string[range->start] == f_fss_delimit_slash) {
             slash_last = range->start++;
           }
 
-          status = f_utf_buffer_increment(*buffer, range, 1);
+          status = f_utf_buffer_increment(buffer, range, 1);
           if (F_status_is_error(status)) break;
         } // while
 
         if (F_status_is_error(status)) break;
 
         if (depth > 0) {
-          fl_macro_fss_nest_return_on_overflow((*buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_unterminated_nest_eos, F_unterminated_nest_stop);
+          fl_macro_fss_nest_return_on_overflow((buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_unterminated_nest_eos, F_unterminated_nest_stop);
         }
         else {
-          fl_macro_fss_nest_return_on_overflow((*buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_data_not_eos, F_data_not_stop);
+          fl_macro_fss_nest_return_on_overflow((buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_data_not_eos, F_data_not_stop);
         }
 
         // All slashes for an open are delimited (because it could represent a slash in the object name).
@@ -371,7 +369,7 @@ extern "C" {
         // Only the first slash before a close is delimited, all others are maintained.
         // for example '}' = valid close, '\}' represents '}', '\\}' represents '\}', '\\\}' represents '\\}', '\\\\}' represents '\\\}', and so on..
         // When slash is odd and a (delimited) valid open/close is found, then save delimited positions and continue.
-        if (buffer->string[range->start] == f_fss_eol) {
+        if (buffer.string[range->start] == f_fss_eol) {
           if (graph_first == 0x2) {
             status = private_fl_fss_delimits_increase(delimits);
             if (F_status_is_error(status)) break;
@@ -384,20 +382,20 @@ extern "C" {
           line_start = range->start;
           graph_first = 0x1;
         }
-        else if (buffer->string[range->start] == f_fss_embedded_list_open || buffer->string[range->start] == f_fss_embedded_list_close) {
+        else if (buffer.string[range->start] == f_fss_embedded_list_open || buffer.string[range->start] == f_fss_embedded_list_close) {
           before_list_open = position_previous;
           is_open = F_false;
           graph_first = 0x0;
 
-          if (buffer->string[range->start] == f_fss_embedded_list_open) {
+          if (buffer.string[range->start] == f_fss_embedded_list_open) {
             is_open = F_true;
           }
 
           position_previous = range->start++;
 
-          while (range->start <= range->stop && range->start < buffer->used) {
+          while (range->start <= range->stop && range->start < buffer.used) {
 
-            if (buffer->string[range->start] == f_fss_eol) {
+            if (buffer.string[range->start] == f_fss_eol) {
               if (graph_first == 0x2) {
                 status = private_fl_fss_delimits_increase(delimits);
                 if (F_status_is_error(status)) break;
@@ -411,8 +409,8 @@ extern "C" {
               break;
             }
 
-            if (buffer->string[range->start] != f_fss_delimit_placeholder) {
-              status = f_fss_is_space(*buffer, *range);
+            if (buffer.string[range->start] != f_fss_delimit_placeholder) {
+              status = f_fss_is_space(buffer, *range);
               if (F_status_is_error(status)) break;
 
               if (status == F_false) break;
@@ -420,21 +418,21 @@ extern "C" {
 
             position_previous = range->start;
 
-            status = f_utf_buffer_increment(*buffer, range, 1);
+            status = f_utf_buffer_increment(buffer, range, 1);
             if (F_status_is_error(status)) break;
           } // while
 
           if (F_status_is_error(status)) break;
 
           if (depth > 0) {
-            fl_macro_fss_nest_return_on_overflow((*buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_unterminated_nest_eos, F_unterminated_nest_stop);
+            fl_macro_fss_nest_return_on_overflow((buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_unterminated_nest_eos, F_unterminated_nest_stop);
           }
           else {
-            fl_macro_fss_nest_return_on_overflow((*buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_data_not_eos, F_data_not_stop);
+            fl_macro_fss_nest_return_on_overflow((buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_data_not_eos, F_data_not_stop);
           }
 
           // this is a valid object open/close that has been delimited, save the slash delimit positions.
-          if (buffer->string[range->start] == f_fss_eol) {
+          if (buffer.string[range->start] == f_fss_eol) {
             newline_last = range->start;
             line_start = range->start + 1;
             graph_first = 0x1;
@@ -454,7 +452,7 @@ extern "C" {
               // apply slash delimits, only slashes and placeholders should be present.
               while (slash_count > 0) {
 
-                if (buffer->string[range->start] == f_fss_delimit_slash) {
+                if (buffer.string[range->start] == f_fss_delimit_slash) {
                   if (slash_count % 2 == 1) {
                     delimits->array[delimits->used++] = range->start;
                   }
@@ -497,7 +495,7 @@ extern "C" {
             range->start = newline_last;
           }
         }
-        else if (graph_first == 0x1 && buffer->string[range->start] == f_fss_comment) {
+        else if (graph_first == 0x1 && buffer.string[range->start] == f_fss_comment) {
           graph_first = 0x2;
           comment_delimit = slash_first;
         }
@@ -505,20 +503,20 @@ extern "C" {
           graph_first = 0x0;
         }
       }
-      else if (buffer->string[range->start] == f_fss_embedded_list_open) {
+      else if (buffer.string[range->start] == f_fss_embedded_list_open) {
         graph_first = 0x0;
         before_list_open = position_previous;
         position_previous = range->start;
 
-        status = f_utf_buffer_increment(*buffer, range, 1);
+        status = f_utf_buffer_increment(buffer, range, 1);
         if (F_status_is_error(status)) break;
 
-        while (range->start <= range->stop && range->start < buffer->used) {
+        while (range->start <= range->stop && range->start < buffer.used) {
 
-          if (buffer->string[range->start] == f_fss_eol) break;
+          if (buffer.string[range->start] == f_fss_eol) break;
 
-          if (buffer->string[range->start] != f_fss_delimit_placeholder) {
-            status = f_fss_is_space(*buffer, *range);
+          if (buffer.string[range->start] != f_fss_delimit_placeholder) {
+            status = f_fss_is_space(buffer, *range);
             if (F_status_is_error(status)) break;
 
             if (status == F_false) break;
@@ -526,20 +524,20 @@ extern "C" {
 
           position_previous = range->start;
 
-          status = f_utf_buffer_increment(*buffer, range, 1);
+          status = f_utf_buffer_increment(buffer, range, 1);
           if (F_status_is_error(status)) break;
         } // while
 
         if (F_status_is_error(status)) break;
 
         if (depth > 0) {
-          fl_macro_fss_nest_return_on_overflow((*buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_unterminated_nest_eos, F_unterminated_nest_stop);
+          fl_macro_fss_nest_return_on_overflow((buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_unterminated_nest_eos, F_unterminated_nest_stop);
         }
         else {
-          fl_macro_fss_nest_return_on_overflow((*buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_data_not_eos, F_data_not_stop);
+          fl_macro_fss_nest_return_on_overflow((buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_data_not_eos, F_data_not_stop);
         }
 
-        if (buffer->string[range->start] == f_fss_eol) {
+        if (buffer.string[range->start] == f_fss_eol) {
           depth++;
 
           if (depth >= positions_start.size) {
@@ -573,7 +571,7 @@ extern "C" {
         else {
 
           // No valid object close found, seek until EOL.
-          status = f_fss_seek_to_eol(*buffer, range);
+          status = f_fss_seek_to_eol(buffer, range);
           if (F_status_is_error(status)) break;
 
           if (graph_first == 0x2) {
@@ -587,9 +585,9 @@ extern "C" {
           line_start = range->start + 1;
           graph_first = 0x1;
 
-          while (range->start <= range->stop && range->start < buffer->used) {
+          while (range->start <= range->stop && range->start < buffer.used) {
 
-            if (buffer->string[range->start] == f_fss_eol) {
+            if (buffer.string[range->start] == f_fss_eol) {
               newline_last = range->start;
               line_start = range->start + 1;
               break;
@@ -597,36 +595,36 @@ extern "C" {
 
             position_previous = range->start;
 
-            status = f_utf_buffer_increment(*buffer, range, 1);
+            status = f_utf_buffer_increment(buffer, range, 1);
             if (F_status_is_error(status)) break;
           } // while
 
           if (F_status_is_error(status)) break;
 
           if (depth > 0) {
-            fl_macro_fss_nest_return_on_overflow((*buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_unterminated_nest_eos, F_unterminated_nest_stop);
+            fl_macro_fss_nest_return_on_overflow((buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_unterminated_nest_eos, F_unterminated_nest_stop);
           }
           else {
-            fl_macro_fss_nest_return_on_overflow((*buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_data_not_eos, F_data_not_stop);
+            fl_macro_fss_nest_return_on_overflow((buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_data_not_eos, F_data_not_stop);
           }
         }
       }
-      else if (buffer->string[range->start] == f_fss_embedded_list_close) {
+      else if (buffer.string[range->start] == f_fss_embedded_list_close) {
         graph_first = 0x0;
 
-        while (range->start <= range->stop && range->start < buffer->used) {
+        while (range->start <= range->stop && range->start < buffer.used) {
 
           position_previous = range->start;
 
-          status = f_utf_buffer_increment(*buffer, range, 1);
+          status = f_utf_buffer_increment(buffer, range, 1);
           if (F_status_is_error(status)) break;
 
-          if (buffer->string[range->start] == f_fss_eol) {
+          if (buffer.string[range->start] == f_fss_eol) {
             break;
           }
 
-          if (buffer->string[range->start] != f_fss_delimit_placeholder) {
-            status = f_fss_is_space(*buffer, *range);
+          if (buffer.string[range->start] != f_fss_delimit_placeholder) {
+            status = f_fss_is_space(buffer, *range);
             if (F_status_is_error(status)) break;
 
             if (status == F_false) {
@@ -638,13 +636,13 @@ extern "C" {
         if (F_status_is_error(status)) break;
 
         if (depth > 0) {
-          fl_macro_fss_nest_return_on_overflow((*buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_unterminated_nest_eos, F_unterminated_nest_stop);
+          fl_macro_fss_nest_return_on_overflow((buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_unterminated_nest_eos, F_unterminated_nest_stop);
         }
         else {
-          fl_macro_fss_nest_return_on_overflow((*buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_data_not_eos, F_data_not_stop);
+          fl_macro_fss_nest_return_on_overflow((buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_data_not_eos, F_data_not_stop);
         }
 
-        if (buffer->string[range->start] == f_fss_eol) {
+        if (buffer.string[range->start] == f_fss_eol) {
           status = private_fl_fss_nest_increase(found);
           if (F_status_is_error(status)) break;
 
@@ -692,10 +690,10 @@ extern "C" {
           graph_first = 0x1;
 
           if (!depth) {
-            status = f_utf_buffer_increment(*buffer, range, 1);
+            status = f_utf_buffer_increment(buffer, range, 1);
             if (F_status_is_error(status)) break;
 
-            fl_macro_fss_nest_return_on_overflow_delimited((*buffer), (*range), (*found), positions_start, objects, F_none_eos, F_none_stop)
+            fl_macro_fss_nest_return_on_overflow_delimited((buffer), (*range), (*found), positions_start, objects, F_none_eos, F_none_stop)
 
             f_macro_string_lengths_t_delete_simple(positions_start);
             f_macro_fss_objects_t_delete_simple(objects);
@@ -708,9 +706,9 @@ extern "C" {
         else {
 
           // No valid object close found, seek until EOL.
-          while (range->start <= range->stop && range->start < buffer->used) {
+          while (range->start <= range->stop && range->start < buffer.used) {
 
-            if (buffer->string[range->start] == f_fss_eol) {
+            if (buffer.string[range->start] == f_fss_eol) {
               if (graph_first == 0x2) {
                 status = private_fl_fss_delimits_increase(delimits);
                 if (F_status_is_error(status)) break;
@@ -726,30 +724,30 @@ extern "C" {
 
             position_previous = range->start;
 
-            status = f_utf_buffer_increment(*buffer, range, 1);
+            status = f_utf_buffer_increment(buffer, range, 1);
             if (F_status_is_error(status)) break;
           } // while
 
           if (F_status_is_error(status)) break;
 
           if (depth > 0) {
-            fl_macro_fss_nest_return_on_overflow((*buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_unterminated_nest_eos, F_unterminated_nest_stop)
+            fl_macro_fss_nest_return_on_overflow((buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_unterminated_nest_eos, F_unterminated_nest_stop)
           }
           else {
-            fl_macro_fss_nest_return_on_overflow((*buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_data_not_eos, F_data_not_stop)
+            fl_macro_fss_nest_return_on_overflow((buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, positions_start, objects, F_data_not_eos, F_data_not_stop)
           }
         }
       }
-      else if (graph_first == 0x1 && buffer->string[range->start] == f_fss_comment) {
+      else if (graph_first == 0x1 && buffer.string[range->start] == f_fss_comment) {
         position = range->start;
 
-        status = f_fss_seek_to_eol(*buffer, range);
+        status = f_fss_seek_to_eol(buffer, range);
         if (F_status_is_error(status)) break;
 
         status = private_fl_fss_ranges_increase(comments);
         if (F_status_is_error(status)) break;
 
-        if (range->start > range->stop || range->start >= buffer->used) {
+        if (range->start > range->stop || range->start >= buffer.used) {
           range->start--;
         }
         else {
@@ -768,11 +766,11 @@ extern "C" {
         comments->array[comments->used++].stop = range->start++;
         continue;
       }
-      else if (buffer->string[range->start] != f_fss_eol) {
+      else if (buffer.string[range->start] != f_fss_eol) {
         position_previous = range->start;
 
         if (graph_first == 0x1) {
-          status = f_fss_is_space(*buffer, *range);
+          status = f_fss_is_space(buffer, *range);
           if (F_status_is_error(status)) break;
 
           if (status == F_false) {
@@ -780,10 +778,10 @@ extern "C" {
           }
         }
 
-        status = f_utf_buffer_increment(*buffer, range, 1);
+        status = f_utf_buffer_increment(buffer, range, 1);
         if (F_status_is_error(status)) break;
 
-        if (range->start >= buffer->used || range->start > range->stop) {
+        if (range->start >= buffer.used || range->start > range->stop) {
           break;
         }
 
@@ -792,7 +790,7 @@ extern "C" {
 
       position_previous = range->start;
 
-      status = f_utf_buffer_increment(*buffer, range, 1);
+      status = f_utf_buffer_increment(buffer, range, 1);
       if (F_status_is_error(status)) break;
     } // while
 
index b4507e6b7352f465345d58ef16fb3466855d0b63..9e6733203463fa6d222e03949186655041ba8cca 100644 (file)
@@ -39,7 +39,6 @@ extern "C" {
  *
  * @param buffer
  *   The buffer to read from.
- *   This will be updated with delimit placeholders as it is being processed.
  * @param range
  *   The start/stop location within the buffer to be processed.
  *   The start location will be updated as the buffer is being processed.
@@ -74,7 +73,7 @@ extern "C" {
  *   Errors (with error bit) from: f_fss_skip_past_space().
  */
 #ifndef _di_fl_fss_embedded_list_object_read_
-  extern f_return_status fl_fss_embedded_list_object_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_object_t *found, f_fss_delimits_t *delimits);
+  extern f_return_status fl_fss_embedded_list_object_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_object_t *found, f_fss_delimits_t *delimits);
 #endif // _di_fl_fss_embedded_list_object_read_
 
 /**
@@ -88,7 +87,6 @@ extern "C" {
  *
  * @param buffer
  *   The buffer to read from.
- *   This will be updated with delimit placeholders as it is being processed.
  * @param range
  *   The start/stop location within the buffer to be processed.
  *   The start location will be updated as the buffer is being processed.
@@ -126,7 +124,7 @@ extern "C" {
  *   Errors (with error bit) from: f_fss_skip_past_space().
  */
 #ifndef _di_fl_fss_embedded_list_content_read_
-  extern f_return_status fl_fss_embedded_list_content_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_nest_t *found, f_fss_delimits_t *delimits, f_fss_comments_t *comments);
+  extern f_return_status fl_fss_embedded_list_content_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_nest_t *found, f_fss_delimits_t *delimits, f_fss_comments_t *comments);
 #endif // _di_fl_fss_embedded_list_content_read_
 
 /**
index 75ea13d908a1b58d4d91fe00d9cf4e695c05cc87..2e239dce34961032097c8660f055afc94b2c2f60 100644 (file)
@@ -6,9 +6,8 @@ extern "C" {
 #endif
 
 #ifndef _di_fl_fss_extended_object_read_
-  f_return_status fl_fss_extended_object_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_object_t *found, f_fss_quote_t *quoted, f_fss_delimits_t *delimits) {
+  f_return_status fl_fss_extended_object_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_object_t *found, f_fss_quote_t *quoted, f_fss_delimits_t *delimits) {
     #ifndef _di_level_1_parameter_checking_
-      if (!buffer) return F_status_set_error(F_parameter);
       if (!range) return F_status_set_error(F_parameter);
       if (!found) return F_status_set_error(F_parameter);
       if (!delimits) return F_status_set_error(F_parameter);
@@ -16,7 +15,7 @@ extern "C" {
 
     const f_array_length_t delimits_used = delimits->used;
 
-    f_status_t status = private_fl_fss_basic_read(F_true, buffer, range, found, quoted, delimits);
+    f_status_t status = private_fl_fss_basic_read(buffer, F_true, range, found, quoted, delimits);
 
     if (F_status_is_error(status)) {
       delimits->used = delimits_used;
@@ -33,9 +32,8 @@ extern "C" {
 #endif // _di_fl_fss_extended_object_read_
 
 #ifndef _di_fl_fss_extended_content_read_
-  f_return_status fl_fss_extended_content_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_content_t *found, f_fss_quotes_t *quotes, f_fss_delimits_t *delimits) {
+  f_return_status fl_fss_extended_content_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_content_t *found, f_fss_quotes_t *quotes, f_fss_delimits_t *delimits) {
     #ifndef _di_level_1_parameter_checking_
-      if (!buffer) return F_status_set_error(F_parameter);
       if (!range) return F_status_set_error(F_parameter);
       if (!found) return F_status_set_error(F_parameter);
       if (!delimits) return F_status_set_error(F_parameter);
@@ -44,7 +42,7 @@ extern "C" {
     f_status_t status = F_none;
     f_status_t status_allocate = F_none;
 
-    status = f_fss_skip_past_space(*buffer, range);
+    status = f_fss_skip_past_space(buffer, range);
     if (F_status_is_error(status)) return status;
 
     if (status == F_none_eol) {
@@ -64,11 +62,11 @@ extern "C" {
 
     uint8_t content_found = 0;
 
-    while (range->start <= range->stop && range->start < buffer->used) {
+    while (range->start <= range->stop && range->start < buffer.used) {
       f_string_range_t content_partial = f_string_range_t_initialize;
       f_fss_quote_t quoted = 0;
 
-      status = private_fl_fss_basic_read(F_false, buffer, range, &content_partial, &quoted, delimits);
+      status = private_fl_fss_basic_read(buffer, F_false, range, &content_partial, &quoted, delimits);
 
       if (status == FL_fss_found_object || status == FL_fss_found_object_content_not) {
 
index 7f1e3d2894ec6a0c47dea456889291e8a5569963..075f6569a8e4e396eb1103d8ea62ad2255e0b338 100644 (file)
@@ -38,7 +38,6 @@ extern "C" {
  *
  * @param buffer
  *   The buffer to read from.
- *   This will be updated with delimit placeholders as it is being processed.
  * @param range
  *   The start/stop location within the buffer to be processed.
  *   The start location will be updated as the buffer is being processed.
@@ -72,7 +71,7 @@ extern "C" {
  *   Errors (with error bit) from: f_fss_skip_past_space().
  */
 #ifndef _di_fl_fss_extended_object_read_
-  extern f_return_status fl_fss_extended_object_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_object_t *found, f_fss_quote_t *quoted, f_fss_delimits_t *delimits);
+  extern f_return_status fl_fss_extended_object_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_object_t *found, f_fss_quote_t *quoted, f_fss_delimits_t *delimits);
 #endif // _di_fl_fss_extended_object_read_
 
 /**
@@ -82,7 +81,6 @@ extern "C" {
  *
  * @param buffer
  *   The buffer to read from.
- *   This will be updated with delimit placeholders as it is being processed.
  * @param range
  *   The start/stop location within the buffer to be processed.
  *   The start location will be updated as the buffer is being processed.
@@ -115,7 +113,7 @@ extern "C" {
  *   Errors (with error bit) from: f_fss_skip_past_space().
  */
 #ifndef _di_fl_fss_extended_content_read_
-  extern f_return_status fl_fss_extended_content_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_content_t *found, f_fss_quotes_t *quotes, f_fss_delimits_t *delimits);
+  extern f_return_status fl_fss_extended_content_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_content_t *found, f_fss_quotes_t *quotes, f_fss_delimits_t *delimits);
 #endif // _di_fl_fss_extended_content_read_
 
 /**
index 050a23bfdc865e02ffe01b8e12f0648897014d31..6cec9fdea014326c4b1f64bad85838f782b2ccfb 100644 (file)
@@ -6,9 +6,8 @@ extern "C" {
 #endif
 
 #ifndef _di_fl_fss_extended_list_object_read_
-  f_return_status fl_fss_extended_list_object_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_object_t *found, f_fss_delimits_t *delimits) {
+  f_return_status fl_fss_extended_list_object_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_object_t *found, f_fss_delimits_t *delimits) {
     #ifndef _di_level_1_parameter_checking_
-      if (!buffer) return F_status_set_error(F_parameter);
       if (!range) return F_status_set_error(F_parameter);
       if (!found) return F_status_set_error(F_parameter);
       if (!delimits) return F_status_set_error(F_parameter);
@@ -16,7 +15,7 @@ extern "C" {
 
     const f_array_length_t delimits_used = delimits->used;
 
-    f_status_t status = f_fss_skip_past_space(*buffer, range);
+    f_status_t status = f_fss_skip_past_space(buffer, range);
     if (F_status_is_error(status)) return status;
 
     if (status == F_none_eol) {
@@ -36,7 +35,7 @@ extern "C" {
     }
 
     // return found nothing if this line only contains whitespace and delimit placeholders.
-    if (buffer->string[range->start] == f_fss_eol) {
+    if (buffer.string[range->start] == f_fss_eol) {
 
       // move the start position to after the EOL.
       range->start++;
@@ -48,8 +47,8 @@ extern "C" {
     found->start = range->start;
 
     // ignore all comment lines.
-    if (buffer->string[range->start] == f_fss_comment) {
-      status = f_fss_seek_to_eol(*buffer, range);
+    if (buffer.string[range->start] == f_fss_comment) {
+      status = f_fss_seek_to_eol(buffer, range);
 
       if (F_status_is_error(status)) {
         delimits->used = delimits_used;
@@ -78,48 +77,48 @@ extern "C" {
     bool graph_first = F_true;
 
     // identify where the object ends.
-    while (range->start <= range->stop && range->start < buffer->used && buffer->string[range->start] != f_fss_eol) {
+    while (range->start <= range->stop && range->start < buffer.used && buffer.string[range->start] != f_fss_eol) {
 
-      if (buffer->string[range->start] == f_fss_delimit_slash) {
+      if (buffer.string[range->start] == f_fss_delimit_slash) {
         slash_first = range->start;
         slash_count = 1;
 
-        status = f_utf_buffer_increment(*buffer, range, 1);
+        status = f_utf_buffer_increment(buffer, range, 1);
         if (F_status_is_error(status)) break;
 
-        while (range->start <= range->stop && range->start < buffer->used && (buffer->string[range->start] == f_fss_delimit_placeholder || buffer->string[range->start] == f_fss_delimit_slash)) {
+        while (range->start <= range->stop && range->start < buffer.used && (buffer.string[range->start] == f_fss_delimit_placeholder || buffer.string[range->start] == f_fss_delimit_slash)) {
 
-          if (buffer->string[range->start] == f_fss_delimit_slash) slash_count++;
+          if (buffer.string[range->start] == f_fss_delimit_slash) slash_count++;
 
-          status = f_utf_buffer_increment(*buffer, range, 1);
+          status = f_utf_buffer_increment(buffer, range, 1);
           if (F_status_is_error(status)) break;
         } // while
 
         if (F_status_is_error(status)) break;
 
-        fl_macro_fss_object_return_on_overflow((*buffer), (*range), (*found), (*delimits), delimits_used, F_data_not_eos, F_data_not_stop);
+        fl_macro_fss_object_return_on_overflow((buffer), (*range), (*found), (*delimits), delimits_used, F_data_not_eos, F_data_not_stop);
 
-        if (buffer->string[range->start] == f_fss_extended_list_open) {
+        if (buffer.string[range->start] == f_fss_extended_list_open) {
           graph_first = F_false;
           stop = range->start - 1;
           range->start++;
 
-          while (range->start <= range->stop && range->start < buffer->used) {
+          while (range->start <= range->stop && range->start < buffer.used) {
 
-            if (buffer->string[range->start] == f_fss_eol) break;
+            if (buffer.string[range->start] == f_fss_eol) break;
 
-            status = f_fss_is_graph(*buffer, *range);
+            status = f_fss_is_graph(buffer, *range);
             if (F_status_is_error(status)) break;
 
             if (status == F_true) break;
 
-            status = f_utf_buffer_increment(*buffer, range, 1);
+            status = f_utf_buffer_increment(buffer, range, 1);
             if (F_status_is_error(status)) break;
           } // while
 
-          fl_macro_fss_object_return_on_overflow((*buffer), (*range), (*found), (*delimits), delimits_used, F_data_not_eos, F_data_not_stop);
+          fl_macro_fss_object_return_on_overflow((buffer), (*range), (*found), (*delimits), delimits_used, F_data_not_eos, F_data_not_stop);
 
-          if (buffer->string[range->start] == f_fss_eol) {
+          if (buffer.string[range->start] == f_fss_eol) {
             start = range->start;
 
             range->start = slash_first;
@@ -130,7 +129,7 @@ extern "C" {
             if (slash_count % 2 == 0) {
               while (slash_count > 0) {
 
-                if (buffer->string[range->start] == f_fss_delimit_slash) {
+                if (buffer.string[range->start] == f_fss_delimit_slash) {
                   if (slash_count % 2 == 1) {
                     delimits->array[delimits->used] = range->start;
                     delimits->used++;
@@ -139,7 +138,7 @@ extern "C" {
                   slash_count--;
                 }
 
-                status = f_utf_buffer_increment(*buffer, range, 1);
+                status = f_utf_buffer_increment(buffer, range, 1);
                 if (F_status_is_error(status)) break;
               } // while
 
@@ -155,7 +154,7 @@ extern "C" {
             return FL_fss_found_object_not;
           }
         }
-        else if (graph_first && buffer->string[range->start] == f_fss_comment) {
+        else if (graph_first && buffer.string[range->start] == f_fss_comment) {
           graph_first = F_false;
 
           // comments may only have whitespace before the '#', therefore only the first slash needs to be delimited.
@@ -171,31 +170,31 @@ extern "C" {
 
         continue;
       }
-      else if (buffer->string[range->start] == f_fss_extended_list_open) {
+      else if (buffer.string[range->start] == f_fss_extended_list_open) {
         graph_first = F_false;
         stop = range->start - 1;
 
-        status = f_utf_buffer_increment(*buffer, range, 1);
+        status = f_utf_buffer_increment(buffer, range, 1);
         if (F_status_is_error(status)) break;
 
-        while (range->start <= range->stop && range->start < buffer->used) {
+        while (range->start <= range->stop && range->start < buffer.used) {
 
-          if (buffer->string[range->start] == f_fss_eol) break;
+          if (buffer.string[range->start] == f_fss_eol) break;
 
-          status = f_fss_is_space(*buffer, *range);
+          status = f_fss_is_space(buffer, *range);
           if (F_status_is_error(status)) break;
 
           if (status == F_false) break;
 
-          status = f_utf_buffer_increment(*buffer, range, 1);
+          status = f_utf_buffer_increment(buffer, range, 1);
           if (F_status_is_error(status)) break;
         } // while
 
         if (F_status_is_error(status)) break;
 
-        fl_macro_fss_object_return_on_overflow_delimited((*buffer), (*range), (*found), F_none_eos, F_none_stop);
+        fl_macro_fss_object_return_on_overflow_delimited((buffer), (*range), (*found), F_none_eos, F_none_stop);
 
-        if (buffer->string[range->start] == f_fss_eol) {
+        if (buffer.string[range->start] == f_fss_eol) {
           found->stop = stop;
 
           // move the start position to after the EOL.
@@ -207,7 +206,7 @@ extern "C" {
         continue;
       }
       else if (graph_first) {
-        status = f_fss_is_space(*buffer, *range);
+        status = f_fss_is_space(buffer, *range);
         if (F_status_is_error(status)) break;
 
         if (status == F_false) {
@@ -215,7 +214,7 @@ extern "C" {
         }
       }
 
-      status = f_utf_buffer_increment(*buffer, range, 1);
+      status = f_utf_buffer_increment(buffer, range, 1);
       if (F_status_is_error(status)) break;
     } // while
 
@@ -225,9 +224,9 @@ extern "C" {
     }
 
     // seek to the end of the line when no valid object is found.
-    while (range->start <= range->stop && range->start < buffer->used && buffer->string[range->start] != f_fss_eol) {
+    while (range->start <= range->stop && range->start < buffer.used && buffer.string[range->start] != f_fss_eol) {
 
-      status = f_utf_buffer_increment(*buffer, range, 1);
+      status = f_utf_buffer_increment(buffer, range, 1);
 
       if (F_status_is_error(status)) {
         delimits->used = delimits_used;
@@ -235,9 +234,9 @@ extern "C" {
       }
     } // while
 
-    fl_macro_fss_object_return_on_overflow((*buffer), (*range), (*found), (*delimits), delimits_used, F_data_not_eos, F_data_not_stop);
+    fl_macro_fss_object_return_on_overflow((buffer), (*range), (*found), (*delimits), delimits_used, F_data_not_eos, F_data_not_stop);
 
-    status = f_utf_buffer_increment(*buffer, range, 1);
+    status = f_utf_buffer_increment(buffer, range, 1);
 
     if (F_status_is_error(status)) {
       delimits->used = delimits_used;
@@ -249,9 +248,8 @@ extern "C" {
 #endif // _di_fl_fss_extended_list_object_read_
 
 #ifndef _di_fl_fss_extended_list_content_read_
-  f_return_status fl_fss_extended_list_content_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_content_t *found, f_fss_delimits_t *delimits, f_fss_comments_t *comments) {
+  f_return_status fl_fss_extended_list_content_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_content_t *found, f_fss_delimits_t *delimits, f_fss_comments_t *comments) {
     #ifndef _di_level_1_parameter_checking_
-      if (!buffer) return F_status_set_error(F_parameter);
       if (!range) return F_status_set_error(F_parameter);
       if (!found) return F_status_set_error(F_parameter);
       if (!delimits) return F_status_set_error(F_parameter);
@@ -261,10 +259,10 @@ extern "C" {
     const f_array_length_t delimits_used = delimits->used;
     const f_array_length_t comments_used = comments->used;
 
-    f_status_t status = f_fss_skip_past_delimit(*buffer, range);
+    f_status_t status = f_fss_skip_past_delimit(buffer, range);
     if (F_status_is_error(status)) return status;
 
-    fl_macro_fss_content_with_comments_return_on_overflow((*buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, F_none_eos, F_none_stop);
+    fl_macro_fss_content_with_comments_return_on_overflow((buffer), (*range), (*found), (*delimits), delimits_used, (*comments), comments_used, F_none_eos, F_none_stop);
 
     status = private_fl_fss_ranges_increase(found);
     if (F_status_is_error(status)) return status;
@@ -277,9 +275,9 @@ extern "C" {
     f_string_length_t start = 0;
 
     // identify where the content ends.
-    while (range->start <= range->stop && range->start < buffer->used) {
+    while (range->start <= range->stop && range->start < buffer.used) {
 
-      status = f_fss_skip_past_space(*buffer, range);
+      status = f_fss_skip_past_space(buffer, range);
       if (F_status_is_error(status)) return status;
 
       if (status == F_none_eol) {
@@ -288,45 +286,45 @@ extern "C" {
         continue;
       }
 
-      if (buffer->string[range->start] == f_fss_delimit_slash) {
+      if (buffer.string[range->start] == f_fss_delimit_slash) {
         slash_first = range->start;
         slash_count = 1;
 
-        for (range->start++; range->start <= range->stop && range->start < buffer->used; ++range->start) {
+        for (range->start++; range->start <= range->stop && range->start < buffer.used; ++range->start) {
 
-          if (buffer->string[range->start] == f_fss_delimit_placeholder) {
+          if (buffer.string[range->start] == f_fss_delimit_placeholder) {
             continue;
-          } else if (buffer->string[range->start] != f_fss_delimit_slash) {
+          } else if (buffer.string[range->start] != f_fss_delimit_slash) {
             break;
           }
 
           slash_count++;
         } // for
 
-        if (range->start > range->stop || range->start >= buffer->used) break;
+        if (range->start > range->stop || range->start >= buffer.used) break;
 
         // Only the first slash before a close is delimited, all others are maintained.
         // For example '}' = valid close, '\}' represents '}', '\\}' represents '\}', '\\\}' represents '\\}', '\\\\}' represents '\\\}', and so on..
         // With one or more slashes, even if delimited, this line may never designate a valid content close.
-        if (buffer->string[range->start] == f_fss_extended_list_close) {
+        if (buffer.string[range->start] == f_fss_extended_list_close) {
           range->start++;
 
-          while (range->start <= range->stop && range->start < buffer->used) {
+          while (range->start <= range->stop && range->start < buffer.used) {
 
-            if (buffer->string[range->start] == f_fss_eol) break;
+            if (buffer.string[range->start] == f_fss_eol) break;
 
-            status = f_fss_is_space(*buffer, *range);
+            status = f_fss_is_space(buffer, *range);
             if (F_status_is_error(status)) break;
 
             if (status == F_false) break;
 
-            status = f_utf_buffer_increment(*buffer, range, 1);
+            status = f_utf_buffer_increment(buffer, range, 1);
             if (F_status_is_error(status)) break;
           } // while
 
-          if (range->start > range->stop || range->start >= buffer->used) break;
+          if (range->start > range->stop || range->start >= buffer.used) break;
 
-          if (buffer->string[range->start] == f_fss_eol) {
+          if (buffer.string[range->start] == f_fss_eol) {
             status = private_fl_fss_delimits_increase(delimits);
             if (F_status_is_error(status)) break;
 
@@ -334,41 +332,41 @@ extern "C" {
             continue;
           }
         }
-        else if (buffer->string[range->start] == f_fss_comment) {
+        else if (buffer.string[range->start] == f_fss_comment) {
           status = private_fl_fss_delimits_increase(delimits);
           if (F_status_is_error(status)) break;
 
           delimits->array[delimits->used++] = slash_first;
         }
 
-        status = f_fss_seek_to_eol(*buffer, range);
+        status = f_fss_seek_to_eol(buffer, range);
         if (F_status_is_error(status)) break;
 
         continue;
       }
 
-      if (buffer->string[range->start] == f_fss_extended_list_close) {
+      if (buffer.string[range->start] == f_fss_extended_list_close) {
         range->start++;
 
-        while (range->start <= range->stop && range->start < buffer->used) {
+        while (range->start <= range->stop && range->start < buffer.used) {
 
-          if (buffer->string[range->start] == f_fss_eol) break;
+          if (buffer.string[range->start] == f_fss_eol) break;
 
-          status = f_fss_is_space(*buffer, *range);
+          status = f_fss_is_space(buffer, *range);
           if (F_status_is_error(status)) break;
 
           if (status == F_false) break;
 
-          status = f_utf_buffer_increment(*buffer, range, 1);
+          status = f_utf_buffer_increment(buffer, range, 1);
           if (F_status_is_error(status)) break;
         } // while
 
         if (F_status_is_error(status)) break;
 
-        if (range->start > range->stop || range->start >= buffer->used) break;
+        if (range->start > range->stop || range->start >= buffer.used) break;
 
         // found a valid content close, set stop point to last newline.
-        if (buffer->string[range->start] == f_fss_eol) {
+        if (buffer.string[range->start] == f_fss_eol) {
           range->start = newline_last + 1;
           found->array[found->used++].stop = newline_last;
 
@@ -378,16 +376,16 @@ extern "C" {
         continue;
       }
 
-      if (buffer->string[range->start] == f_fss_comment) {
+      if (buffer.string[range->start] == f_fss_comment) {
         start = range->start;
 
-        status = f_fss_seek_to_eol(*buffer, range);
+        status = f_fss_seek_to_eol(buffer, range);
         if (F_status_is_error(status)) break;
 
         status = private_fl_fss_ranges_increase(comments);
         if (F_status_is_error(status)) break;
 
-        if (range->start > range->stop || range->start >= buffer->used) {
+        if (range->start > range->stop || range->start >= buffer.used) {
           range->start--;
         }
         else {
@@ -400,7 +398,7 @@ extern "C" {
       }
 
       // There is no possibility of a valid content close, so seek until newline.
-      status = f_fss_seek_to_eol(*buffer, range);
+      status = f_fss_seek_to_eol(buffer, range);
       if (F_status_is_error(status)) break;
     } // while
 
index 23c94bb85df27e5e8c869d21bbc0f032986019de..2f3d3777d3a879800df7dba0146d9f566801af41 100644 (file)
@@ -39,7 +39,6 @@ extern "C" {
  *
  * @param buffer
  *   The buffer to read from.
- *   This will be updated with delimit placeholders as it is being processed.
  * @param range
  *   The start/stop location within the buffer to be processed.
  *   The start location will be updated as the buffer is being processed.
@@ -74,7 +73,7 @@ extern "C" {
  *   Errors (with error bit) from: f_fss_skip_past_space().
  */
 #ifndef _di_fl_fss_extended_list_object_read_
-  extern f_return_status fl_fss_extended_list_object_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_object_t *found, f_fss_delimits_t *delimits);
+  extern f_return_status fl_fss_extended_list_object_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_object_t *found, f_fss_delimits_t *delimits);
 #endif // _di_fl_fss_extended_list_object_read_
 
 /**
@@ -86,7 +85,6 @@ extern "C" {
  *
  * @param buffer
  *   The buffer to read from.
- *   This will be updated with delimit placeholders as it is being processed.
  * @param range
  *   The start/stop location within the buffer to be processed.
  *   The start location will be updated as the buffer is being processed.
@@ -124,7 +122,7 @@ extern "C" {
  *   Errors (with error bit) from: f_fss_skip_past_space().
  */
 #ifndef _di_fl_fss_extended_list_content_read_
-  extern f_return_status fl_fss_extended_list_content_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_content_t *found, f_fss_delimits_t *delimits, f_fss_comments_t *comments);
+  extern f_return_status fl_fss_extended_list_content_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_content_t *found, f_fss_delimits_t *delimits, f_fss_comments_t *comments);
 #endif // _di_fl_fss_extended_list_content_read_
 
 /**
index a9ea6dcab135439f1a90e3c4362a2bc99154e845..497dd45e7ecaf3a8825864fd31c71bffe5c1ec9b 100644 (file)
@@ -190,9 +190,9 @@ extern "C" {
 #endif // !defined(_di_fl_fss_basic_list_object_write_string_) || !defined(_di_fl_fss_extended_list_object_write_string_)
 
 #if !defined(_di_fl_fss_basic_object_read_) || !defined(_di_fl_fss_extended_object_read_) || !defined(_di_fl_fss_extended_content_read_)
-  f_return_status private_fl_fss_basic_read(const bool object_as, f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_object_t *found, f_fss_quote_t *quote, f_fss_delimits_t *delimits) {
+  f_return_status private_fl_fss_basic_read(const f_string_static_t buffer, const bool object_as, f_string_range_t *range, f_fss_object_t *found, f_fss_quote_t *quote, f_fss_delimits_t *delimits) {
 
-    f_status_t status = f_fss_skip_past_space(*buffer, range);
+    f_status_t status = f_fss_skip_past_space(buffer, range);
     if (F_status_is_error(status)) return status;
 
     if (status == F_none_eol) {
@@ -215,12 +215,12 @@ extern "C" {
     found->start = range->start;
 
     // ignore all comment lines.
-    if (object_as && buffer->string[range->start] == f_fss_comment) {
+    if (object_as && buffer.string[range->start] == f_fss_comment) {
 
-      while (buffer->string[range->start] != f_fss_eol) {
+      while (buffer.string[range->start] != f_fss_eol) {
         range->start++;
 
-        if (range->start >= buffer->used) return F_data_not_eos;
+        if (range->start >= buffer.used) return F_data_not_eos;
         if (range->start > range->stop) return F_data_not_stop;
       } // while
 
@@ -238,38 +238,38 @@ extern "C" {
     }
 
     // identify where the object begins.
-    if (buffer->string[range->start] == f_fss_delimit_slash) {
+    if (buffer.string[range->start] == f_fss_delimit_slash) {
       f_string_length_t first_slash = range->start;
 
       found->start = range->start;
 
-      status = f_utf_buffer_increment(*buffer, range, 1);
+      status = f_utf_buffer_increment(buffer, range, 1);
       if (F_status_is_error(status)) return status;
 
-      while (range->start <= range->stop && range->start < buffer->used) {
+      while (range->start <= range->stop && range->start < buffer.used) {
 
-        status = f_fss_is_zero_width(*buffer, *range);
+        status = f_fss_is_zero_width(buffer, *range);
         if (F_status_is_error(status)) return status;
 
         if (status == F_true) {
-          status = f_utf_buffer_increment(*buffer, range, 1);
+          status = f_utf_buffer_increment(buffer, range, 1);
           if (F_status_is_error(status)) return status;
 
           continue;
         }
 
-        if (buffer->string[range->start] != f_fss_delimit_slash) {
-          status = f_fss_is_space(*buffer, *range);
+        if (buffer.string[range->start] != f_fss_delimit_slash) {
+          status = f_fss_is_space(buffer, *range);
           if (F_status_is_error(status)) return status;
 
           // found the end of the object while processing the slash for potential delimits.
           if (status == F_true) {
             found->stop = range->start - 1;
 
-            status = f_utf_buffer_increment(*buffer, range, 1);
+            status = f_utf_buffer_increment(buffer, range, 1);
             if (F_status_is_error(status)) return status;
 
-            if (buffer->string[range->start] == f_fss_eol) {
+            if (buffer.string[range->start] == f_fss_eol) {
               return FL_fss_found_object_content_not;
             }
 
@@ -279,12 +279,12 @@ extern "C" {
           break;
         }
 
-        status = f_utf_buffer_increment(*buffer, range, 1);
+        status = f_utf_buffer_increment(buffer, range, 1);
         if (F_status_is_error(status)) return status;
       } // while
 
-      if (range->start >= buffer->used) {
-        found->stop = buffer->used - 1;
+      if (range->start >= buffer.used) {
+        found->stop = buffer.used - 1;
         return F_none_eos;
       }
 
@@ -293,7 +293,7 @@ extern "C" {
         return F_none_stop;
       }
 
-      if (buffer->string[range->start] == f_fss_delimit_quote_single || buffer->string[range->start] == f_fss_delimit_quote_double || (object_as && buffer->string[range->start] == f_fss_comment)) {
+      if (buffer.string[range->start] == f_fss_delimit_quote_single || buffer.string[range->start] == f_fss_delimit_quote_double || (object_as && buffer.string[range->start] == f_fss_comment)) {
 
         // only the first slash before a quoted needs to be escaped (or not) as once there is a slash before a quoted, this cannot ever be a quote object.
         // this simplifies the number of slashes needed.
@@ -303,14 +303,14 @@ extern "C" {
         delimits->array[delimits->used] = first_slash;
         delimits->used++;
 
-        status = f_utf_buffer_increment(*buffer, range, 1);
+        status = f_utf_buffer_increment(buffer, range, 1);
         if (F_status_is_error(status)) return status;
       }
     }
-    else if (buffer->string[range->start] == f_fss_delimit_quote_single || buffer->string[range->start] == f_fss_delimit_quote_double) {
-      quote_found = buffer->string[range->start];
+    else if (buffer.string[range->start] == f_fss_delimit_quote_single || buffer.string[range->start] == f_fss_delimit_quote_double) {
+      quote_found = buffer.string[range->start];
 
-      status = f_utf_buffer_increment(*buffer, range, 1);
+      status = f_utf_buffer_increment(buffer, range, 1);
       if (F_status_is_error(status)) return status;
 
       found->start = range->start;
@@ -320,20 +320,20 @@ extern "C" {
     if (!quote_found) {
       status = F_none;
 
-      while (range->start <= range->stop && range->start < buffer->used) {
+      while (range->start <= range->stop && range->start < buffer.used) {
 
-        status = f_fss_is_space(*buffer, *range);
+        status = f_fss_is_space(buffer, *range);
         if (F_status_is_error(status)) return status;
 
         if (status == F_true) break;
 
-        status = f_utf_buffer_increment(*buffer, range, 1);
+        status = f_utf_buffer_increment(buffer, range, 1);
         if (F_status_is_error(status)) return status;
       } // while
 
       found->stop = range->start - 1;
 
-      if (buffer->string[range->start] == f_fss_eol) {
+      if (buffer.string[range->start] == f_fss_eol) {
 
         // move the start position to after the EOL.
         range->start++;
@@ -341,7 +341,7 @@ extern "C" {
         return FL_fss_found_object_content_not;
       }
 
-      status = f_utf_buffer_increment(*buffer, range, 1);
+      status = f_utf_buffer_increment(buffer, range, 1);
       if (F_status_is_error(status)) return status;
 
       return FL_fss_found_object;
@@ -351,35 +351,35 @@ extern "C" {
       f_string_length_t slash_count = 0;
       f_string_length_t location = 0;
 
-      while (range->start <= range->stop && range->start < buffer->used) {
+      while (range->start <= range->stop && range->start < buffer.used) {
 
-        if (buffer->string[range->start] == f_fss_delimit_slash) {
+        if (buffer.string[range->start] == f_fss_delimit_slash) {
           first_slash = range->start;
           slash_count = 1;
 
-          status = f_utf_buffer_increment(*buffer, range, 1);
+          status = f_utf_buffer_increment(buffer, range, 1);
           if (F_status_is_error(status)) return status;
 
-          while (range->start <= range->stop && range->start < buffer->used) {
+          while (range->start <= range->stop && range->start < buffer.used) {
 
-            if (buffer->string[range->start] == f_fss_delimit_placeholder) {
-              status = f_utf_buffer_increment(*buffer, range, 1);
+            if (buffer.string[range->start] == f_fss_delimit_placeholder) {
+              status = f_utf_buffer_increment(buffer, range, 1);
               if (F_status_is_error(status)) return status;
 
               continue;
             }
-            else if (buffer->string[range->start] != f_fss_delimit_slash) {
+            else if (buffer.string[range->start] != f_fss_delimit_slash) {
               break;
             }
 
             slash_count++;
 
-            status = f_utf_buffer_increment(*buffer, range, 1);
+            status = f_utf_buffer_increment(buffer, range, 1);
             if (F_status_is_error(status)) return status;
           } // while
 
-          if (range->start >= buffer->used) {
-            found->stop = buffer->used - 1;
+          if (range->start >= buffer.used) {
+            found->stop = buffer.used - 1;
             return F_unterminated_group_eos;
           }
 
@@ -388,23 +388,23 @@ extern "C" {
             return F_unterminated_group_stop;
           }
 
-          if (buffer->string[range->start] == quote_found) {
+          if (buffer.string[range->start] == quote_found) {
             location = range->start;
 
             // check to see if there is a whitespace, EOS, or EOL after the quoted, if not, then this is not a closing quoted and delimits do not apply.
-            if (range->start + 1 <= range->stop && range->start + 1 < buffer->used) {
+            if (range->start + 1 <= range->stop && range->start + 1 < buffer.used) {
               range->start++;
 
-              status = f_fss_skip_past_delimit(*buffer, range);
+              status = f_fss_skip_past_delimit(buffer, range);
               if (F_status_is_error(status)) return status;
 
-              if (range->start > range->stop || range->start >= buffer->used) {
+              if (range->start > range->stop || range->start >= buffer.used) {
                 // EOS or EOL was reached, so it is a valid closing quoted.
                 // (for EOL, this is always TRUE, for EOS this could be false but there is no way to know this, so assume TRUE (@todo maybe none on stop?).
                 status = F_true;
               }
               else {
-                status = f_fss_is_space(*buffer, *range);
+                status = f_fss_is_space(buffer, *range);
                 if (F_status_is_error(status)) return status;
               }
             }
@@ -432,7 +432,7 @@ extern "C" {
 
                 while (slash_count > 0) {
 
-                  if (buffer->string[range->start] == f_fss_delimit_slash) {
+                  if (buffer.string[range->start] == f_fss_delimit_slash) {
                     if (slash_count % 2 == 1) {
                       delimits->array[delimits->used] = range->start;
                       delimits->used++;
@@ -441,32 +441,32 @@ extern "C" {
                     slash_count--;
                   }
 
-                  status = f_utf_buffer_increment(*buffer, range, 1);
+                  status = f_utf_buffer_increment(buffer, range, 1);
                   if (F_status_is_error(status)) return status;
                 } // while
 
                 range->start = location + 1;
 
-                while (buffer->string[range->start] == f_fss_delimit_placeholder) {
+                while (buffer.string[range->start] == f_fss_delimit_placeholder) {
                   range->start++;
 
-                  if (range->start >= buffer->used) return F_none_eos;
+                  if (range->start >= buffer.used) return F_none_eos;
                   if (range->start > range->stop) return F_none_stop;
                 } // while
 
-                status = f_fss_is_graph(*buffer, *range);
+                status = f_fss_is_graph(buffer, *range);
                 if (F_status_is_error(status)) return status;
 
                 if (status == F_true) {
 
-                  while (range->start <= range->stop && range->start < buffer->used && buffer->string[range->start] != f_fss_eol) {
+                  while (range->start <= range->stop && range->start < buffer.used && buffer.string[range->start] != f_fss_eol) {
 
-                    status = f_utf_buffer_increment(*buffer, range, 1);
+                    status = f_utf_buffer_increment(buffer, range, 1);
                     if (F_status_is_error(status)) return status;
                   } // while
 
-                  if (range->start >= buffer->used) {
-                    found->stop = buffer->used - 1;
+                  if (range->start >= buffer.used) {
+                    found->stop = buffer.used - 1;
                     return F_data_not_eos;
                   }
 
@@ -475,13 +475,13 @@ extern "C" {
                     return F_data_not_stop;
                   }
 
-                  status = f_utf_buffer_increment(*buffer, range, 1);
+                  status = f_utf_buffer_increment(buffer, range, 1);
                   if (F_status_is_error(status)) return status;
 
                   return FL_fss_found_object_not;
                 }
 
-                if (buffer->string[range->start] == f_fss_eol) {
+                if (buffer.string[range->start] == f_fss_eol) {
                   found->stop = location - 1;
 
                   // move the start position to after the EOL.
@@ -492,7 +492,7 @@ extern "C" {
 
                 found->stop = location - 1;
 
-                status = f_utf_buffer_increment(*buffer, range, 1);
+                status = f_utf_buffer_increment(buffer, range, 1);
                 if (F_status_is_error(status)) return status;
 
                 return FL_fss_found_object;
@@ -503,7 +503,7 @@ extern "C" {
 
                 while (slash_count > 0) {
 
-                  if (buffer->string[range->start] == f_fss_delimit_slash) {
+                  if (buffer.string[range->start] == f_fss_delimit_slash) {
                     if (slash_count % 2 == 1) {
                       delimits->array[delimits->used] = range->start;
                       delimits->used++;
@@ -512,7 +512,7 @@ extern "C" {
                     slash_count--;
                   }
 
-                  status = f_utf_buffer_increment(*buffer, range, 1);
+                  status = f_utf_buffer_increment(buffer, range, 1);
                   if (F_status_is_error(status)) return status;
                 } // while
 
@@ -524,24 +524,24 @@ extern "C" {
             }
           }
         }
-        else if (buffer->string[range->start] == quote_found) {
+        else if (buffer.string[range->start] == quote_found) {
 
           // check to see if there is a whitespace, EOS, or EOL after the quoted, if not, then this is not a closing quoted.
           location = range->start;
 
-          if (range->start + 1 <= range->stop && range->start + 1 < buffer->used) {
+          if (range->start + 1 <= range->stop && range->start + 1 < buffer.used) {
             range->start++;
 
-            status = f_fss_skip_past_delimit(*buffer, range);
+            status = f_fss_skip_past_delimit(buffer, range);
             if (F_status_is_error(status)) return status;
 
-            if (range->start > range->stop || range->start >= buffer->used) {
+            if (range->start > range->stop || range->start >= buffer.used) {
               // EOS or EOL was reached, so it is a valid closing quoted.
               // (for EOL, this is always TRUE, for EOS this could be false but there is no way to know this, so assume TRUE (@todo maybe none on stop?).
               status = F_true;
             }
             else {
-              status = f_fss_is_space(*buffer, *range);
+              status = f_fss_is_space(buffer, *range);
               if (F_status_is_error(status)) return status;
             }
           }
@@ -565,12 +565,12 @@ extern "C" {
 
             found->stop = range->start - 1;
 
-            status = f_utf_buffer_increment(*buffer, range, 1);
+            status = f_utf_buffer_increment(buffer, range, 1);
             if (F_status_is_error(status)) return status;
 
-            while (range->start <= range->stop && range->start < buffer->used) {
+            while (range->start <= range->stop && range->start < buffer.used) {
 
-              if (buffer->string[range->start] == f_fss_eol) {
+              if (buffer.string[range->start] == f_fss_eol) {
 
                 // move the start position to after the EOL.
                 range->start++;
@@ -578,26 +578,26 @@ extern "C" {
                 return FL_fss_found_object_content_not;
               }
 
-              status = f_fss_is_space(*buffer, *range);
+              status = f_fss_is_space(buffer, *range);
               if (F_status_is_error(status)) return status;
 
               if (status == F_true) {
-                status = f_utf_buffer_increment(*buffer, range, 1);
+                status = f_utf_buffer_increment(buffer, range, 1);
                 if (F_status_is_error(status)) return status;
 
                 return FL_fss_found_object;
               }
 
-              if (buffer->string[range->start] != f_fss_delimit_placeholder) {
+              if (buffer.string[range->start] != f_fss_delimit_placeholder) {
 
-                while (range->start <= range->stop && range->start < buffer->used && buffer->string[range->start] != f_fss_eol) {
+                while (range->start <= range->stop && range->start < buffer.used && buffer.string[range->start] != f_fss_eol) {
 
-                  status = f_utf_buffer_increment(*buffer, range, 1);
+                  status = f_utf_buffer_increment(buffer, range, 1);
                   if (F_status_is_error(status)) return status;
                 } // while
 
-                if (range->start >= buffer->used) {
-                  found->stop = buffer->used - 1;
+                if (range->start >= buffer.used) {
+                  found->stop = buffer.used - 1;
                   return F_data_not_eos;
                 }
 
@@ -606,18 +606,18 @@ extern "C" {
                   return F_data_not_stop;
                 }
 
-                status = f_utf_buffer_increment(*buffer, range, 1);
+                status = f_utf_buffer_increment(buffer, range, 1);
                 if (F_status_is_error(status)) return status;
 
                 return FL_fss_found_object_not;
               }
 
-              status = f_utf_buffer_increment(*buffer, range, 1);
+              status = f_utf_buffer_increment(buffer, range, 1);
               if (F_status_is_error(status)) return status;
             } // while
 
-            if (range->start >= buffer->used) {
-              found->stop = buffer->used - 1;
+            if (range->start >= buffer.used) {
+              found->stop = buffer.used - 1;
               return F_none_eos;
             }
 
@@ -627,7 +627,7 @@ extern "C" {
             }
           }
         }
-        else if (buffer->string[range->start] == f_fss_eol) {
+        else if (buffer.string[range->start] == f_fss_eol) {
 
           // move the start position to after the EOL.
           range->start++;
@@ -635,12 +635,12 @@ extern "C" {
           return FL_fss_found_object_not;
         }
 
-        status = f_utf_buffer_increment(*buffer, range, 1);
+        status = f_utf_buffer_increment(buffer, range, 1);
         if (F_status_is_error(status)) return status;
       } // while
 
-      if (range->start >= buffer->used) {
-        found->stop = buffer->used - 1;
+      if (range->start >= buffer.used) {
+        found->stop = buffer.used - 1;
         return F_unterminated_group_eos;
       }
 
@@ -651,7 +651,7 @@ extern "C" {
     }
 
     // seek to the EOL when no valid object is found.
-    status = f_fss_seek_to_eol(*buffer, range);
+    status = f_fss_seek_to_eol(buffer, range);
     if (F_status_is_error(status)) return status;
 
     // move the start position to after the EOL.
index 9dbb66ea667ece61cf2127a68eb2edaa6ea55643..3b743ff1acafdcd0a1d027d149b282c1e9a0a933 100644 (file)
@@ -87,15 +87,14 @@ extern "C" {
  *
  * Intended to be shared to each of the different implementation variations.
  *
+ * @param buffer
+ *   The buffer to read from.
  * @param object_as
  *   If TRUE, then this operate as an Object.
  *   IF FALSE, then this operates as a Content.
  *
  *   As Object, this checks if the first graph character is a comment character '#', or an escaped comment character '#'.
  *   As Content, this does nothing special in regards to a leading '#'.
- * @param buffer
- *   The buffer to read from.
- *   This will be updated with delimit placeholders as it is being processed.
  * @param range
  *   The start/stop location within the buffer to be processed.
  *   The start location will be updated as the buffer is being processed.
@@ -139,7 +138,7 @@ extern "C" {
  * @see fl_fss_extended_content_read()
  */
 #if !defined(_di_fl_fss_basic_object_read_) || !defined(_di_fl_fss_extended_object_read_) || !defined(_di_fl_fss_extended_content_read_)
-  extern f_return_status private_fl_fss_basic_read(const bool object_as, f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_object_t *found, f_fss_quote_t *quoted, f_fss_delimits_t *delimits) f_gcc_attribute_visibility_internal;
+  extern f_return_status private_fl_fss_basic_read(const f_string_static_t buffer, const bool object_as, f_string_range_t *range, f_fss_object_t *found, f_fss_quote_t *quoted, f_fss_delimits_t *delimits) f_gcc_attribute_visibility_internal;
 #endif // !defined(_di_fl_fss_basic_object_read_) || !defined(_di_fl_fss_extended_object_read_) || !defined(_di_fl_fss_extended_content_read_)
 
 /**
index e046410eecfae6c043a4a9cab92d3012031f502b..efda731fda45214575124472d72964dfebf8380c 100644 (file)
@@ -5,9 +5,8 @@ extern "C" {
 #endif
 
 #ifndef _di_fll_fss_basic_read_
-  f_return_status fll_fss_basic_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_objects_t *objects, f_fss_contents_t *contents, f_fss_quotes_t *objects_quoted, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits) {
+  f_return_status fll_fss_basic_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_objects_t *objects, f_fss_contents_t *contents, f_fss_quotes_t *objects_quoted, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits) {
     #ifndef _di_level_2_parameter_checking_
-      if (!buffer) return F_status_set_error(F_parameter);
       if (!range) return F_status_set_error(F_parameter);
       if (!objects) return F_status_set_error(F_parameter);
       if (!contents) return F_status_set_error(F_parameter);
@@ -47,7 +46,7 @@ extern "C" {
           return status;
         }
 
-        if (range->start >= range->stop || range->start >= buffer->used) {
+        if (range->start >= range->stop || range->start >= buffer.used) {
           if (status == FL_fss_found_object || status == FL_fss_found_object_content_not) {
             objects->used++;
 
@@ -66,14 +65,14 @@ extern "C" {
           }
 
           if (found_data) {
-            if (range->start >= buffer->used) {
+            if (range->start >= buffer.used) {
                return F_none_eos;
             }
 
             return F_none_stop;
           }
           else {
-            if (range->start >= buffer->used) {
+            if (range->start >= buffer.used) {
                return F_data_not_eos;
             }
 
@@ -126,7 +125,7 @@ extern "C" {
         return status;
       }
       // When content is found, the range->start is incremented, if content is found at range->stop, then range->start will be > range.stop.
-      else if (range->start >= range->stop || range->start >= buffer->used) {
+      else if (range->start >= range->stop || range->start >= buffer.used) {
         if (status == FL_fss_found_object || status == FL_fss_found_content || status == FL_fss_found_content_not || status == FL_fss_found_object_content_not) {
           objects->used++;
           contents->used++;
@@ -136,7 +135,7 @@ extern "C" {
           }
         }
 
-        if (range->start >= buffer->used) {
+        if (range->start >= buffer.used) {
           return F_none_eos;
         }
 
index 15eb1139889f94bc662358aa0af413936e7b5800..72975352f5fb7af8153ccf41dcc8a60b1b8a161e 100644 (file)
@@ -68,7 +68,7 @@ extern "C" {
  *   Errors (with error bit) from: fl_fss_basic_object_read().
  */
 #ifndef _di_fll_fss_basic_read_
-  extern f_return_status fll_fss_basic_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_objects_t *objects, f_fss_contents_t *contents, f_fss_quotes_t *objects_quoted, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits);
+  extern f_return_status fll_fss_basic_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_objects_t *objects, f_fss_contents_t *contents, f_fss_quotes_t *objects_quoted, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits);
 #endif // _di_fll_fss_basic_read_
 
 /**
index 67966dcadbd13272b5d4d433055743b98461ebe4..ac8e6b5ffb4b0aa090cbda321f7d9c53b329a5a2 100644 (file)
@@ -5,9 +5,8 @@ extern "C" {
 #endif
 
 #ifndef _di_fll_fss_basic_list_read_
-  f_return_status fll_fss_basic_list_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_objects_t *objects, f_fss_contents_t *contents, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits, f_fss_comments_t *comments) {
+  f_return_status fll_fss_basic_list_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_objects_t *objects, f_fss_contents_t *contents, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits, f_fss_comments_t *comments) {
     #ifndef _di_level_2_parameter_checking_
-      if (!buffer) return F_status_set_error(F_parameter);
       if (!range) return F_status_set_error(F_parameter);
       if (!objects) return F_status_set_error(F_parameter);
       if (!contents) return F_status_set_error(F_parameter);
@@ -33,7 +32,7 @@ extern "C" {
         status = fl_fss_basic_list_object_read(buffer, range, &objects->array[objects->used], objects_delimits);
         if (F_status_is_error(status)) return status;
 
-        if (range->start >= range->stop || range->start >= buffer->used) {
+        if (range->start >= range->stop || range->start >= buffer.used) {
           if (status == FL_fss_found_object || status == FL_fss_found_object_content_not) {
             objects->used++;
 
@@ -48,14 +47,14 @@ extern "C" {
           }
 
           if (found_data) {
-            if (range->start >= buffer->used) {
+            if (range->start >= buffer.used) {
               return F_none_eos;
             }
 
             return F_none_stop;
           }
           else {
-            if (range->start >= buffer->used) {
+            if (range->start >= buffer.used) {
               return F_data_not_eos;
             }
 
@@ -107,7 +106,7 @@ extern "C" {
       else if (status != FL_fss_found_object && status != FL_fss_found_content && status != FL_fss_found_content_not && status != FL_fss_found_object_content_not) {
         return status;
       }
-      else if (range->start >= range->stop || range->start >= buffer->used) {
+      else if (range->start >= range->stop || range->start >= buffer.used) {
 
         // When content is found, the range->start is incremented, if content is found at range->stop, then range->start will be > range.stop.
         if (status == FL_fss_found_object || status == FL_fss_found_content || status == FL_fss_found_content_not || status == FL_fss_found_object_content_not) {
@@ -115,7 +114,7 @@ extern "C" {
           contents->used++;
         }
 
-        if (range->start >= buffer->used) {
+        if (range->start >= buffer.used) {
           return F_none_eos;
         }
 
index e84a7962e4411a0b66c074e1777f9d7004ca5089..2427ba5bfc006bdeef05d954f743911bed359359 100644 (file)
@@ -67,7 +67,7 @@ extern "C" {
  *   Errors (with error bit) from: fl_fss_basic_list_object_read().
  */
 #ifndef _di_fll_fss_basic_list_read_
-  extern f_return_status fll_fss_basic_list_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_objects_t *objects, f_fss_contents_t *contents, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits, f_fss_comments_t *comments);
+  extern f_return_status fll_fss_basic_list_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_objects_t *objects, f_fss_contents_t *contents, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits, f_fss_comments_t *comments);
 #endif // _di_fll_fss_basic_list_read_
 
 /**
@@ -80,7 +80,7 @@ extern "C" {
  * @param content_prepend
  *   A string to prepend at the start of each line in content, such as spaces.
  *   Set the pointer address to 0 to disable.
- * @param buffer
+ * @param destination
  *   The buffer to write to.
  *
  * @return
@@ -99,7 +99,7 @@ extern "C" {
  *   Errors (with error bit) from: fl_string_dynamic_increase_by().
  */
 #ifndef _di_fll_fss_basic_list_write_string_
-  extern f_return_status fll_fss_basic_list_write_string(const f_string_static_t object, const f_string_static_t content, const f_string_static_t *content_prepend, f_string_dynamic_t *buffer);
+  extern f_return_status fll_fss_basic_list_write_string(const f_string_static_t object, const f_string_static_t content, const f_string_static_t *content_prepend, f_string_dynamic_t *destination);
 #endif // _di_fll_fss_basic_list_write_string_
 
 #ifdef __cplusplus
index 39b7bf2ef465a5b57a3e3591483ff4a34a9fcdb4..fcbac8aaa07883affef635a8a9a89c4532722d02 100644 (file)
@@ -5,9 +5,8 @@ extern "C" {
 #endif
 
 #ifndef _di_fll_fss_embedded_list_read_
-  f_return_status fll_fss_embedded_list_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_nest_t *nest, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits, f_fss_comments_t *comments) {
+  f_return_status fll_fss_embedded_list_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_nest_t *nest, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits, f_fss_comments_t *comments) {
     #ifndef _di_level_3_parameter_checking_
-      if (!buffer) return F_status_set_error(F_parameter);
       if (!range) return F_status_set_error(F_parameter);
       if (!nest) return F_status_set_error(F_parameter);
       if (!objects_delimits) return F_status_set_error(F_parameter);
@@ -38,7 +37,7 @@ extern "C" {
         status = fl_fss_embedded_list_object_read(buffer, range, &nest->depth[0].array[nest->depth[0].used].object, objects_delimits);
         if (F_status_is_error(status)) return status;
 
-        if (range->start >= range->stop || range->start >= buffer->used) {
+        if (range->start >= range->stop || range->start >= buffer.used) {
           if (status == FL_fss_found_object || status == FL_fss_found_object_content_not) {
 
             // extended list requires content closure, so this could be an error.
@@ -46,14 +45,14 @@ extern "C" {
           }
 
           if (found_data) {
-            if (range->start >= buffer->used) {
+            if (range->start >= buffer.used) {
               return F_none_eos;
             }
 
             return F_none_stop;
           }
           else {
-            if (range->start >= buffer->used) {
+            if (range->start >= buffer.used) {
               return F_data_not_eos;
             }
 
@@ -101,8 +100,8 @@ extern "C" {
         return status;
       }
       // When content is found, the range->start is incremented, if content is found at range->stop, then range->start will be > range.stop.
-      else if (range->start >= range->stop || range->start >= buffer->used) {
-        if (range->start >= buffer->used) {
+      else if (range->start >= range->stop || range->start >= buffer.used) {
+        if (range->start >= buffer.used) {
           return F_none_eos;
         }
 
index c5351f06ae1b603a8b72135ab5327e45edeb9578..a8b4b5942836e5a8b8b1bf1471d0fc254febc521 100644 (file)
@@ -71,7 +71,7 @@ extern "C" {
  *   Errors (with error bit) from: fl_fss_embedded_list_object_read().
  */
 #ifndef _di_fll_fss_embedded_list_read_
-  extern f_return_status fll_fss_embedded_list_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_nest_t *nest, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits, f_fss_comments_t *comments);
+  extern f_return_status fll_fss_embedded_list_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_nest_t *nest, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits, f_fss_comments_t *comments);
 #endif // _di_fll_fss_embedded_list_read_
 
 /**
index 40081ee2497bc2406db8dd1edfabe36c557f2eed..47c657d3bb0ed91a4f407a2710c65d2abdc05ff6 100644 (file)
@@ -5,9 +5,8 @@ extern "C" {
 #endif
 
 #ifndef _di_fll_fss_extended_read_
-  f_return_status fll_fss_extended_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_objects_t *objects, f_fss_contents_t *contents, f_fss_quotes_t *objects_quoted, f_fss_quotess_t *contents_quoted, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits) {
+  f_return_status fll_fss_extended_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_objects_t *objects, f_fss_contents_t *contents, f_fss_quotes_t *objects_quoted, f_fss_quotess_t *contents_quoted, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits) {
     #ifndef _di_level_2_parameter_checking_
-      if (!buffer) return F_status_set_error(F_parameter);
       if (!range) return F_status_set_error(F_parameter);
       if (!objects) return F_status_set_error(F_parameter);
       if (!contents) return F_status_set_error(F_parameter);
@@ -53,7 +52,7 @@ extern "C" {
           return status;
         }
 
-        if (range->start >= range->stop || range->start >= buffer->used) {
+        if (range->start >= range->stop || range->start >= buffer.used) {
           if (status == FL_fss_found_object || status == FL_fss_found_object_content_not) {
             objects->used++;
 
@@ -76,14 +75,14 @@ extern "C" {
           }
 
           if (found_data) {
-            if (range->start >= buffer->used) {
+            if (range->start >= buffer.used) {
                return F_none_eos;
             }
 
             return F_none_stop;
           }
           else {
-            if (range->start >= buffer->used) {
+            if (range->start >= buffer.used) {
                return F_data_not_eos;
             }
 
@@ -150,7 +149,7 @@ extern "C" {
         return status;
       }
       // When content is found, the range->start is incremented, if content is found at range->stop, then range->start will be > range.stop.
-      else if (range->start >= range->stop || range->start >= buffer->used) {
+      else if (range->start >= range->stop || range->start >= buffer.used) {
         if (status == FL_fss_found_object || status == FL_fss_found_content || status == FL_fss_found_content_not || status == FL_fss_found_object_content_not || status == F_unterminated_group) {
           objects->used++;
           contents->used++;
@@ -164,7 +163,7 @@ extern "C" {
           }
         }
 
-        if (range->start >= buffer->used) {
+        if (range->start >= buffer.used) {
           if (status == F_unterminated_group) return F_unterminated_group_eos;
 
           return F_none_eos;
index d35d7a3f19d2df9c45587ea0fa0903ffd36b8412..7fd94d3f121f8683d8d0d9a209da6211939efe5e 100644 (file)
@@ -69,7 +69,7 @@ extern "C" {
  *   Errors (with error bit) from: fl_fss_extended_object_read().
  */
 #ifndef _di_fll_fss_extended_read_
-  extern f_return_status fll_fss_extended_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_objects_t *objects, f_fss_contents_t *contents, f_fss_quotes_t *objects_quoted, f_fss_quotess_t *contents_quoted, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits);
+  extern f_return_status fll_fss_extended_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_objects_t *objects, f_fss_contents_t *contents, f_fss_quotes_t *objects_quoted, f_fss_quotess_t *contents_quoted, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits);
 #endif // _di_fll_fss_extended_read_
 
 /**
index abe81ff74c0ebf5be06a6627538b5e0e37f60724..682c6fa380a91d1f3da2a84ff6d4c1c825de34a2 100644 (file)
@@ -5,9 +5,8 @@ extern "C" {
 #endif
 
 #ifndef _di_fll_fss_extended_list_read_
-  f_return_status fll_fss_extended_list_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_objects_t *objects, f_fss_contents_t *contents, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits, f_fss_comments_t *comments) {
+  f_return_status fll_fss_extended_list_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_objects_t *objects, f_fss_contents_t *contents, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits, f_fss_comments_t *comments) {
     #ifndef _di_level_2_parameter_checking_
-      if (!buffer) return F_status_set_error(F_parameter);
       if (!range) return F_status_set_error(F_parameter);
       if (!objects) return F_status_set_error(F_parameter);
       if (!contents) return F_status_set_error(F_parameter);
@@ -33,7 +32,7 @@ extern "C" {
         status = fl_fss_extended_list_object_read(buffer, range, &objects->array[objects->used], objects_delimits);
         if (F_status_is_error(status)) return status;
 
-        if (range->start >= range->stop || range->start >= buffer->used) {
+        if (range->start >= range->stop || range->start >= buffer.used) {
           if (status == FL_fss_found_object || status == FL_fss_found_object_content_not) {
             objects->used++;
 
@@ -48,14 +47,14 @@ extern "C" {
           }
 
           if (found_data) {
-            if (range->start >= buffer->used) {
+            if (range->start >= buffer.used) {
               return F_none_eos;
             }
 
             return F_none_stop;
           }
           else {
-            if (range->start >= buffer->used) {
+            if (range->start >= buffer.used) {
               return F_data_not_eos;
             }
 
@@ -107,7 +106,7 @@ extern "C" {
       else if (status != FL_fss_found_object && status != FL_fss_found_content && status != FL_fss_found_content_not && status != FL_fss_found_object_content_not) {
         return status;
       }
-      else if (range->start >= range->stop || range->start >= buffer->used) {
+      else if (range->start >= range->stop || range->start >= buffer.used) {
 
         // When content is found, the range->start is incremented, if content is found at range->stop, then range->start will be > range.stop.
         if (status == FL_fss_found_object || status == FL_fss_found_content || status == FL_fss_found_content_not || status == FL_fss_found_object_content_not) {
@@ -115,7 +114,7 @@ extern "C" {
           contents->used++;
         }
 
-        if (range->start >= buffer->used) {
+        if (range->start >= buffer.used) {
           return F_none_eos;
         }
 
index 11243a5e6ea748e2d36d3fb9b81bab587b3eec83..fef146906c8a34479c813b885f529793016abba1 100644 (file)
@@ -75,7 +75,7 @@ extern "C" {
  *   Errors (with error bit) from: fl_fss_extended_list_object_read().
  */
 #ifndef _di_fll_fss_extended_list_read_
-  extern f_return_status fll_fss_extended_list_read(f_string_dynamic_t *buffer, f_string_range_t *range, f_fss_objects_t *objects, f_fss_contents_t *contents, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits, f_fss_comments_t *comments);
+  extern f_return_status fll_fss_extended_list_read(const f_string_static_t buffer, f_string_range_t *range, f_fss_objects_t *objects, f_fss_contents_t *contents, f_fss_delimits_t *objects_delimits, f_fss_delimits_t *contents_delimits, f_fss_comments_t *comments);
 #endif // _di_fll_fss_extended_list_read_
 
 /**
index 03dffc55f929315dca50950dab49edefcd386c19..0eab15bbcceafbafddb5d2fdd227f78e10fe9de9 100644 (file)
@@ -1365,7 +1365,7 @@ extern "C" {
         f_string_range_t range = f_macro_string_range_t_initialize(buffer.used);
         f_fss_delimits_t delimits = f_fss_delimits_t_initialize;
 
-        *status = fll_fss_extended_read(&buffer, &range, &objects, &contents, 0, 0, &delimits, 0);
+        *status = fll_fss_extended_read(buffer, &range, &objects, &contents, 0, 0, &delimits, 0);
 
         if (F_status_is_error(*status)) {
           fake_print_error_fss(data, F_status_set_fine(*status), "fll_fss_extended_read", data.file_data_build_settings.string, range, F_true);
index c33238e7e1e0b0b52eb3a5f427d17113db2411e1..81f29e72029166a04d91cab5f596a5acc1844e26 100644 (file)
@@ -206,7 +206,7 @@ extern "C" {
       f_fss_delimits_t delimits = f_fss_delimits_t_initialize;
       f_fss_comments_t comments = f_fss_comments_t_initialize;
 
-      *status = fll_fss_basic_list_read(&data_make->buffer, &range, &list_objects, &list_contents, &delimits, 0, &comments);
+      *status = fll_fss_basic_list_read(data_make->buffer, &range, &list_objects, &list_contents, &delimits, 0, &comments);
 
       if (F_status_is_error(*status)) {
         fake_print_error_fss(data, *status, "fll_fss_basic_list_read", data.file_data_build_fakefile.string, range, F_true);
@@ -272,7 +272,7 @@ extern "C" {
             delimits.used = 0;
             content_range = list_contents.array[i].array[0];
 
-            *status = fll_fss_extended_read(&data_make->buffer, &content_range, &settings.objects, &settings.contents, 0, 0, &delimits, 0);
+            *status = fll_fss_extended_read(data_make->buffer, &content_range, &settings.objects, &settings.contents, 0, 0, &delimits, 0);
 
             if (F_status_is_error(*status)) {
               fake_print_error_fss(data, F_status_set_fine(*status), "fll_fss_extended_read", data.file_data_build_fakefile.string, content_range, F_true);
@@ -304,7 +304,7 @@ extern "C" {
           delimits.used = 0;
           content_range = list_contents.array[i].array[0];
 
-          *status = fll_fss_extended_read(&data_make->buffer, &content_range, &data_make->fakefile.array[data_make->fakefile.used].objects, &data_make->fakefile.array[data_make->fakefile.used].contents, 0, &data_make->fakefile.array[data_make->fakefile.used].quotess, &delimits, 0);
+          *status = fll_fss_extended_read(data_make->buffer, &content_range, &data_make->fakefile.array[data_make->fakefile.used].objects, &data_make->fakefile.array[data_make->fakefile.used].contents, 0, &data_make->fakefile.array[data_make->fakefile.used].quotess, &delimits, 0);
 
           if (F_status_is_error(*status)) {
             fake_print_error_fss(data, F_status_set_fine(*status), "fll_fss_extended_read", data.file_data_build_fakefile.string, content_range, F_true);
index 9e1b3fc9239b33042234efa42e8b32964054b0a3..62b985cfd8bd5d8b700e2429f82204399be1cf25 100644 (file)
@@ -651,7 +651,7 @@ f_return_status firewall_perform_commands(const firewall_local_data_t local, con
               {
                 f_string_range_t input = f_macro_string_range_t_initialize(local_buffer.used);
 
-                status = fll_fss_basic_read(&local_buffer, &input, &basic_objects, &basic_contents, 0, &delimits, 0);
+                status = fll_fss_basic_read(local_buffer, &input, &basic_objects, &basic_contents, 0, &delimits, 0);
               }
 
               if (F_status_set_error(status)) {
@@ -1399,7 +1399,7 @@ f_return_status firewall_buffer_rules(const f_string_t filename, const bool opti
   {
     f_string_range_t input = f_macro_string_range_t_initialize(local->buffer.used);
 
-    status = fll_fss_basic_list_read(&local->buffer, &input, &local->chain_objects, &local->chain_contents, &delimits, 0, &comments);
+    status = fll_fss_basic_list_read(local->buffer, &input, &local->chain_objects, &local->chain_contents, &delimits, 0, &comments);
   }
 
   if (F_status_is_error(status)) {
@@ -1435,7 +1435,7 @@ f_return_status firewall_buffer_rules(const f_string_t filename, const bool opti
 f_return_status firewall_process_rules(f_string_range_t *range, firewall_local_data_t *local, firewall_data_t *data) {
   f_fss_delimits_t delimits = f_fss_delimits_t_initialize;
 
-  f_status_t status = fll_fss_extended_read(&local->buffer, range, &local->rule_objects, &local->rule_contents, 0, 0, &delimits, 0);
+  f_status_t status = fll_fss_extended_read(local->buffer, range, &local->rule_objects, &local->rule_contents, 0, 0, &delimits, 0);
 
   if (F_status_is_error_not(status)) {
     status = fl_fss_apply_delimit(delimits, &local->buffer);
index 02762956b0eae5d08e72054b72991fe07c50849a..d3555e3e3881b87e39fce87d6892a5e61a59dd6c 100644 (file)
@@ -187,7 +187,7 @@ extern "C" {
       delimits->used = 0;
       comments->used = 0;
 
-      status = fll_fss_basic_list_read(&data->buffer, &input, &data->objects, &data->contents, delimits, 0, comments);
+      status = fll_fss_basic_list_read(data->buffer, &input, &data->objects, &data->contents, delimits, 0, comments);
 
       if (F_status_is_error(status)) {
         // @todo: detect and replace fll_error_file_type_file with fll_error_file_type_pipe as appropriate.
index a9cbbf89ab78d7cb18947b7a18d002075ebac323..e337192acdb2a8df6f94c34279c342f574226422 100644 (file)
@@ -186,7 +186,7 @@ extern "C" {
 
       delimits->used = 0;
 
-      status = fll_fss_basic_read(&data->buffer, &input, &data->objects, &data->contents, 0, delimits, 0);
+      status = fll_fss_basic_read(data->buffer, &input, &data->objects, &data->contents, 0, delimits, 0);
 
       if (F_status_is_error(status)) {
         // @todo: detect and replace fll_error_file_type_file with fll_error_file_type_pipe as appropriate.
index d9539ca029cab88ef18258874bb5f4c2696faed4..727f5e60719136805ebc11edf7b4d86fba4ccb8e 100644 (file)
@@ -226,7 +226,7 @@ extern "C" {
       contents_delimits->used = 0;
       comments->used = 0;
 
-      status = fll_fss_embedded_list_read(&data->buffer, &input, &data->nest, objects_delimits, contents_delimits, comments);
+      status = fll_fss_embedded_list_read(data->buffer, &input, &data->nest, objects_delimits, contents_delimits, comments);
 
       if (F_status_is_error(status)) {
         // @todo: detect and replace fll_error_file_type_file with fll_error_file_type_pipe as appropriate.
index a00c525060420445fe0a53120fb9a390971252ff..571543cc4eebe942fa406a78af3245026240b883 100644 (file)
@@ -187,7 +187,7 @@ extern "C" {
       delimits->used = 0;
       comments->used = 0;
 
-      status = fll_fss_extended_list_read(&data->buffer, &input, &data->objects, &data->contents, delimits, 0, comments);
+      status = fll_fss_extended_list_read(data->buffer, &input, &data->objects, &data->contents, delimits, 0, comments);
 
       if (F_status_is_error(status)) {
         // @todo: detect and replace fll_error_file_type_file with fll_error_file_type_pipe as appropriate.
index c200030c296fcde6cc98abffa7e5307c17c69d75..a6cf57afe8ac110a5937b18a08cc6fa63165a67f 100644 (file)
@@ -214,7 +214,7 @@ extern "C" {
       objects_delimits->used = 0;
       contents_delimits->used = 0;
 
-      status = fll_fss_extended_read(&data->buffer, &input, &data->objects, &data->contents, 0, 0, objects_delimits, contents_delimits);
+      status = fll_fss_extended_read(data->buffer, &input, &data->objects, &data->contents, 0, 0, objects_delimits, contents_delimits);
 
       if (F_status_is_error(status)) {
         // @todo: detect and replace fll_error_file_type_file with fll_error_file_type_pipe as appropriate.