From: Kevin Day Date: Mon, 31 Aug 2026 00:06:55 +0000 (-0500) Subject: Progress: Do some structural clean ups. X-Git-Url: https://git.kevux.org/?a=commitdiff_plain;h=5f68a507883c4a4f2a0fad09e6da7c0b682d05b3;p=fll Progress: Do some structural clean ups. The `f_fss_seek_to_eol()` returns `F_okay_eol`. Check that instead of doing a buffer string character comparison where possible. Improve some condition block logic regarding breaks, returns, and continues. Change some of the status error checking to reduce return statements. I have probably flip flopped on this problem numerous times. Looking into how compilers and CPUs like to optimize things, I believe that reducing the return statements will be of benefit vs the probably cleaner immediate returns. This can only be done when it is clear and when the status code being returned (or any state) is identical between calls. --- diff --git a/level_1/fl_fss/c/fss/basic.c b/level_1/fl_fss/c/fss/basic.c index ff5a2b7a9..4d1eec178 100644 --- a/level_1/fl_fss/c/fss/basic.c +++ b/level_1/fl_fss/c/fss/basic.c @@ -41,35 +41,25 @@ extern "C" { const f_number_unsigned_t begin = range->start; - for (;; ++range->start) { + f_fss_seek_to_eol(buffer, range, state); - if (state->interrupt) { - state->interrupt((void *) state, 0); - if (F_status_set_fine(state->status) == F_interrupt) break; - } - - f_fss_skip_past_delimit(buffer, range, state); - if (F_status_is_error(state->status)) break; - - if (state->status == F_okay_eos || state->status == F_okay_stop) return; - if (buffer.string[range->start] == f_fss_basic_close_s.string[0]) break; - } // for - - if (F_status_is_error(state->status)) return; + if (F_status_is_error_not(state->status)) { + state->status = f_memory_array_increase(state->step_small, sizeof(f_range_t), (void **) &found->array, &found->used, &found->size); + } - state->status = f_memory_array_increase(state->step_small, sizeof(f_range_t), (void **) &found->array, &found->used, &found->size); - if (F_status_is_error(state->status)) return; + if (F_status_is_error_not(state->status)) { + if (range->start > begin) { + found->array[found->used].start = begin; + found->array[found->used++].stop = range->start - 1; + } + else { + found->array[found->used].start = 1; + found->array[found->used++].stop = 0; + } - if (range->start > begin) { - found->array[found->used].start = begin; - found->array[found->used++].stop = range->start - 1; - } - else { - found->array[found->used].start = 1; - found->array[found->used++].stop = 0; + state->status = f_utf_buffer_increment(buffer, range, 1); } - state->status = f_utf_buffer_increment(buffer, range, 1); if (F_status_is_error(state->status)) return; state->status = F_fss_found_content; diff --git a/level_1/fl_fss/c/fss/basic_list.c b/level_1/fl_fss/c/fss/basic_list.c index b240f01ca..b442de0ae 100644 --- a/level_1/fl_fss/c/fss/basic_list.c +++ b/level_1/fl_fss/c/fss/basic_list.c @@ -429,7 +429,7 @@ extern "C" { f_fss_skip_past_space(content, range, state); if (F_status_is_error(state->status)) break; - if (content.string[range->start] == f_fss_eol_s.string[0] || range->start >= content.used || range->start > range->stop) { + if (state->status == F_okay_eol || range->start >= content.used || range->start > range->stop) { // Increase by total slashes + 1, along with the basic list open and possible newline. state->status = f_memory_array_increase_by(slash_count + 3, sizeof(f_char_t), (void **) &destination->string, &destination->used, &destination->size); @@ -474,7 +474,7 @@ extern "C" { f_fss_skip_past_space(content, range, state); if (F_status_is_error(state->status)) break; - if (content.string[range->start] == f_fss_eol_s.string[0] || range->start >= content.used || range->start > range->stop) { + if (state->status == F_okay_eol || range->start >= content.used || range->start > range->stop) { // Increase by slash and basic list open and possible newline. state->status = f_memory_array_increase_by(3, sizeof(f_char_t), (void **) &destination->string, &destination->used, &destination->size); diff --git a/level_1/fl_fss/c/fss/embedded_list.c b/level_1/fl_fss/c/fss/embedded_list.c index 78ceb3a16..2f45465f0 100644 --- a/level_1/fl_fss/c/fss/embedded_list.c +++ b/level_1/fl_fss/c/fss/embedded_list.c @@ -705,7 +705,7 @@ extern "C" { f_fss_skip_past_space(content, range, state); if (F_status_is_error(state->status)) break; - if (range->start >= content.used || range->start > range->stop || content.string[range->start] == f_fss_eol_s.string[0]) { + if (state->status == F_okay_eol || range->start >= content.used || range->start > range->stop) { // Increase by total slashes + 1 embedded list open/close. state->status = f_memory_array_increase_by(slash_count + 2, sizeof(f_char_t), (void **) &destination->string, &destination->used, &destination->size); @@ -766,9 +766,8 @@ extern "C" { f_fss_skip_past_space(content, range, state); if (F_status_is_error(state->status)) break; - if (range->start >= content.used || range->start > range->stop || content.string[range->start] == f_fss_eol_s.string[0]) { - - if (content.string[range->start] == f_fss_eol_s.string[0] && prepend) { + if (state->status == F_okay_eol || range->start >= content.used || range->start > range->stop) { + if (state->status == F_okay_eol && prepend) { flag |= ___fl_flag_has_eol_do_prepend___; } else { diff --git a/level_1/fl_fss/c/fss/extended.c b/level_1/fl_fss/c/fss/extended.c index 1ba037fe5..40f7febdd 100644 --- a/level_1/fl_fss/c/fss/extended.c +++ b/level_1/fl_fss/c/fss/extended.c @@ -45,7 +45,6 @@ extern "C" { uint8_t content_found = 0; uint8_t quote = f_fss_quote_type_none_e; f_range_t content_partial = f_range_t_initialize; - f_status_t status = F_okay; while (range->start <= range->stop && range->start < buffer.used) { @@ -96,18 +95,26 @@ extern "C" { content_found = 1; if (state->status == F_fss_found_object_content_not) break; + + continue; } - else if (state->status == F_fss_found_object_not) { - break; + + if (F_status_is_error(state->status)) { + delimits->used = delimits_used; + + if (quotes) { + quotes->used = quotes_used; + } + + return; } - else if (state->status == F_data_not_eos) { + + if (state->status == F_data_not_eos) { if (content_found) { state->status = F_okay_eos; } content_found = 2; - - break; } else if (state->status == F_data_not_stop) { if (content_found) { @@ -115,25 +122,14 @@ extern "C" { } content_found = 2; - - break; } else if (state->status == F_end_not_group_eos || state->status == F_end_not_group_eos) { - if (content_found) { + if (content_found == 1) { content_found = 2; } - - break; } - else if (F_status_is_error(state->status)) { - delimits->used = delimits_used; - if (quotes) { - quotes->used = quotes_used; - } - - return; - } + break; } // while if (content_found) { diff --git a/level_1/fl_fss/c/fss/extended_list.c b/level_1/fl_fss/c/fss/extended_list.c index c94f2d42c..7b7ea9ee9 100644 --- a/level_1/fl_fss/c/fss/extended_list.c +++ b/level_1/fl_fss/c/fss/extended_list.c @@ -388,7 +388,7 @@ extern "C" { if (flag & ___fl_flag_has_graph___) { // Do nothing. } - else if (content.string[range->start] == f_fss_eol_s.string[0] || range->start >= content.used || range->start > range->stop) { + else if (state->status == F_okay_eol || range->start >= content.used || range->start > range->stop) { state->status = f_memory_array_increase_by(2, sizeof(f_char_t), (void **) &destination->string, &destination->used, &destination->size); if (F_status_is_error(state->status)) break; @@ -441,9 +441,8 @@ extern "C" { f_fss_skip_past_space(content, range, state); if (F_status_is_error(state->status)) break; - if (content.string[range->start] == f_fss_eol_s.string[0] || range->start >= content.used || range->start > range->stop) { - - if (content.string[range->start] == f_fss_eol_s.string[0] && prepend) { + if (state->status == F_okay_eol || range->start >= content.used || range->start > range->stop) { + if (state->status == F_okay_eol && prepend) { flag |= ___fl_flag_has_eol_do_prepend___; } else { diff --git a/level_1/fl_fss/c/fss/private-payload-helper.c b/level_1/fl_fss/c/fss/private-payload-helper.c index fd2938e8a..bc8f262e5 100644 --- a/level_1/fl_fss/c/fss/private-payload-helper.c +++ b/level_1/fl_fss/c/fss/private-payload-helper.c @@ -14,9 +14,11 @@ extern "C" { internal->range.stop = buffer->used - 1; private_fl_fss_basic_write(F_false, *buffer, 0, &internal->range, &destinations->array[destinations->used].value, state, (void * const) internal); - if (F_status_is_error(state->status)) return F_true; - state->status = f_string_dynamic_strip_null(&destinations->array[destinations->used].value); + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_strip_null(&destinations->array[destinations->used].value); + } + if (F_status_is_error(state->status)) return F_true; } @@ -34,9 +36,11 @@ extern "C" { internal->range.stop = buffer->used - 1; private_fl_fss_basic_write(F_false, *buffer, 0, &internal->range, &destinations->array[destinations->used].value, state, (void * const) internal); - if (F_status_is_error(state->status)) return F_true; - state->status = f_string_dynamic_strip_null(&destinations->array[destinations->used].value); + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_strip_null(&destinations->array[destinations->used].value); + } + if (F_status_is_error(state->status)) return F_true; } else if (data->flag & append_on_empty) { @@ -54,21 +58,27 @@ extern "C" { uint8_t private_fl_payload_helper_header_map_destination_write_empty_three(fl_fss_payload_header_state_t * const data, f_state_t * const state, fl_fss_payload_header_internal_t * const internal, f_string_static_t * const destination, const f_string_static_t separator) { state->status = f_memory_array_increase_by(internal->quote_null.used * 3 + separator.used * 2, sizeof(f_char_t), (void **) &destination->string, &destination->used, &destination->size); - if (F_status_is_error(state->status)) return F_true; - state->status = f_string_dynamic_append(internal->quote_null, destination); - if (F_status_is_error(state->status)) return F_true; + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append(internal->quote_null, destination); + } - state->status = f_string_dynamic_append_assure(separator, destination); - if (F_status_is_error(state->status)) return F_true; + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(separator, destination); + } - state->status = f_string_dynamic_append(internal->quote_null, destination); - if (F_status_is_error(state->status)) return F_true; + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append(internal->quote_null, destination); + } - state->status = f_string_dynamic_append_assure(separator, destination); - if (F_status_is_error(state->status)) return F_true; + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(separator, destination); + } + + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append(internal->quote_null, destination); + } - state->status = f_string_dynamic_append(internal->quote_null, destination); if (F_status_is_error(state->status)) return F_true; state->status = F_okay; @@ -81,15 +91,19 @@ extern "C" { uint8_t private_fl_payload_helper_header_map_destination_write_empty_two(fl_fss_payload_header_state_t * const data, f_state_t * const state, fl_fss_payload_header_internal_t * const internal, f_string_static_t * const destination, const f_string_static_t separator) { state->status = f_memory_array_increase_by(internal->quote_null.used * 2 + separator.used, sizeof(f_char_t), (void **) &destination->string, &destination->used, &destination->size); - if (F_status_is_error(state->status)) return F_true; - state->status = f_string_dynamic_append(internal->quote_null, destination); - if (F_status_is_error(state->status)) return F_true; + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append(internal->quote_null, destination); + } - state->status = f_string_dynamic_append_assure(separator, destination); - if (F_status_is_error(state->status)) return F_true; + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(separator, destination); + } + + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append(internal->quote_null, destination); + } - state->status = f_string_dynamic_append(internal->quote_null, destination); if (F_status_is_error(state->status)) return F_true; state->status = F_okay; diff --git a/level_1/fl_fss/c/fss/private-payload.c b/level_1/fl_fss/c/fss/private-payload.c index 49ca04309..92ecd8edd 100644 --- a/level_1/fl_fss/c/fss/private-payload.c +++ b/level_1/fl_fss/c/fss/private-payload.c @@ -31,9 +31,11 @@ extern "C" { if (data->flag & f_fss_payload_header_map_flag_join_dynamics_e) { state->status = f_string_dynamic_append(buffers->array[internal->j], data->cache); - if (F_status_is_error(state->status)) return F_true; - state->status = f_string_dynamic_append_assure(f_string_space_s, data->cache); + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(f_string_space_s, data->cache); + } + if (F_status_is_error(state->status)) return F_true; } else { @@ -42,9 +44,11 @@ extern "C" { internal->range.stop = buffers->array[internal->j].used - 1; private_fl_fss_basic_write(F_false, buffers->array[internal->j], internal->quote, &internal->range, &destinations->array[destinations->used].value, state, (void * const) internal); - if (F_status_is_error(state->status)) return F_true; - state->status = f_string_dynamic_append_assure(f_fss_extended_next_s, &destinations->array[destinations->used].value); + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(f_fss_extended_next_s, &destinations->array[destinations->used].value); + } + if (F_status_is_error(state->status)) return F_true; } else if (data->flag & f_fss_payload_header_map_flag_null_dynamic_e) { @@ -116,9 +120,10 @@ extern "C" { state->status = f_string_dynamic_append(internal->quote_null, data->cache); } - if (F_status_is_error(state->status)) return F_true; + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); + } - state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); if (F_status_is_error(state->status)) return F_true; } @@ -130,9 +135,10 @@ extern "C" { state->status = f_string_dynamic_append(internal->quote_null, data->cache); } - if (F_status_is_error(state->status)) return F_true; + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); + } - state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); if (F_status_is_error(state->status)) return F_true; } @@ -161,9 +167,10 @@ extern "C" { state->status = f_string_dynamic_append(internal->quote_null, &destinations->array[destinations->used].value); } - if (F_status_is_error(state->status)) return F_true; + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(f_fss_extended_next_s, &destinations->array[destinations->used].value); + } - state->status = f_string_dynamic_append_assure(f_fss_extended_next_s, &destinations->array[destinations->used].value); if (F_status_is_error(state->status)) return F_true; } @@ -178,9 +185,10 @@ extern "C" { state->status = f_string_dynamic_append(internal->quote_null, &destinations->array[destinations->used].value); } - if (F_status_is_error(state->status)) return F_true; + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(f_fss_extended_next_s, &destinations->array[destinations->used].value); + } - state->status = f_string_dynamic_append_assure(f_fss_extended_next_s, &destinations->array[destinations->used].value); if (F_status_is_error(state->status)) return F_true; } @@ -244,9 +252,10 @@ extern "C" { state->status = f_string_dynamic_append(internal->quote_null, data->cache); } - if (F_status_is_error(state->status)) return F_true; + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); + } - state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); if (F_status_is_error(state->status)) return F_true; } @@ -262,9 +271,10 @@ extern "C" { state->status = f_string_dynamic_append(internal->quote_null, data->cache); } - if (F_status_is_error(state->status)) return F_true; + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); + } - state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); if (F_status_is_error(state->status)) return F_true; } } @@ -303,9 +313,10 @@ extern "C" { state->status = f_string_dynamic_append(internal->quote_null, &destinations->array[destinations->used].value); } - if (F_status_is_error(state->status)) return F_true; + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(f_fss_extended_next_s, &destinations->array[destinations->used].value); + } - state->status = f_string_dynamic_append_assure(f_fss_extended_next_s, &destinations->array[destinations->used].value); if (F_status_is_error(state->status)) return F_true; } @@ -324,9 +335,10 @@ extern "C" { state->status = f_string_dynamic_append(internal->quote_null, &destinations->array[destinations->used].value); } - if (F_status_is_error(state->status)) return F_true; + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(f_fss_space_s, &destinations->array[destinations->used].value); + } - state->status = f_string_dynamic_append_assure(f_fss_space_s, &destinations->array[destinations->used].value); if (F_status_is_error(state->status)) return F_true; } } // for @@ -335,9 +347,10 @@ extern "C" { state->status = f_string_dynamic_append(internal->quote_null, &destinations->array[destinations->used].value); } - if (F_status_is_error(state->status)) return F_true; + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(f_fss_extended_next_s, &destinations->array[destinations->used].value); + } - state->status = f_string_dynamic_append_assure(f_fss_extended_next_s, &destinations->array[destinations->used].value); if (F_status_is_error(state->status)) return F_true; } @@ -420,9 +433,10 @@ extern "C" { state->status = f_string_dynamic_append(internal->quote_null, data->cache); } - if (F_status_is_error(state->status)) return F_true; + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); + } - state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); if (F_status_is_error(state->status)) return F_true; } @@ -438,9 +452,10 @@ extern "C" { state->status = f_string_dynamic_append(internal->quote_null, data->cache); } - if (F_status_is_error(state->status)) return F_true; + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); + } - state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); if (F_status_is_error(state->status)) return F_true; } } // for @@ -449,9 +464,10 @@ extern "C" { state->status = f_string_dynamic_append(internal->quote_null, data->cache); } - if (F_status_is_error(state->status)) return F_true; + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); + } - state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); if (F_status_is_error(state->status)) return F_true; } } // for @@ -492,9 +508,10 @@ extern "C" { state->status = f_string_dynamic_append(internal->quote_null, data->cache); } - if (F_status_is_error(state->status)) return F_true; + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); + } - state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); if (F_status_is_error(state->status)) return F_true; } @@ -510,9 +527,10 @@ extern "C" { state->status = f_string_dynamic_append(internal->quote_null, data->cache); } - if (F_status_is_error(state->status)) return F_true; + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); + } - state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); if (F_status_is_error(state->status)) return F_true; } } // for @@ -521,9 +539,10 @@ extern "C" { state->status = f_string_dynamic_append(internal->quote_null, data->cache); } - if (F_status_is_error(state->status)) return F_true; + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); + } - state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); if (F_status_is_error(state->status)) return F_true; } @@ -537,9 +556,11 @@ extern "C" { internal->range.stop = data->cache->used - 1; private_fl_fss_basic_write(F_false, *data->cache, 0, &internal->range, &destinations->array[destinations->used].value, state, (void * const) internal); - if (F_status_is_error(state->status)) return F_true; - state->status = f_string_dynamic_append_assure(f_fss_extended_next_s, &destinations->array[destinations->used].value); + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(f_fss_extended_next_s, &destinations->array[destinations->used].value); + } + if (F_status_is_error(state->status)) return F_true; } } // for @@ -721,9 +742,10 @@ extern "C" { state->status = f_string_dynamic_append(internal->quote_null, data->cache); } - if (F_status_is_error(state->status)) return F_true; + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); + } - state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); if (F_status_is_error(state->status)) return F_true; } @@ -735,9 +757,10 @@ extern "C" { state->status = f_string_dynamic_append(internal->quote_null, data->cache); } - if (F_status_is_error(state->status)) return F_true; + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); + } - state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); if (F_status_is_error(state->status)) return F_true; } } // for @@ -778,9 +801,10 @@ extern "C" { state->status = f_string_dynamic_append(internal->quote_null, data->cache); } - if (F_status_is_error(state->status)) return F_true; + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); + } - state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); if (F_status_is_error(state->status)) return F_true; } @@ -792,9 +816,10 @@ extern "C" { state->status = f_string_dynamic_append(internal->quote_null, data->cache); } - if (F_status_is_error(state->status)) return F_true; + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); + } - state->status = f_string_dynamic_append_assure(f_fss_space_s, data->cache); if (F_status_is_error(state->status)) return F_true; } @@ -808,9 +833,12 @@ extern "C" { internal->range.stop = data->cache->used - 1; private_fl_fss_basic_write(F_false, *data->cache, 0, &internal->range, &destinations->array[destinations->used].value, state, (void * const) internal); - if (F_status_is_error(state->status)) return F_true; - state->status = f_string_dynamic_append_assure(f_fss_extended_next_s, &destinations->array[destinations->used].value); + + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(f_fss_extended_next_s, &destinations->array[destinations->used].value); + } + if (F_status_is_error(state->status)) return F_true; } } // for @@ -1063,12 +1091,14 @@ extern "C" { data->cache->used = 0; state->status = f_string_dynamic_append_assure(f_fss_extended_next_s, &destinations->array[destinations->used].value); - if (F_status_is_error(state->status)) return F_true; - if (private_fl_payload_header_map_number_unsigned(data, state, internal, quantitys.array[internal->l].total) == F_true) return F_true; - if (private_fl_payload_helper_header_map_destination_write_buffer(data, state, internal, data->cache, destinations) == F_true) return F_true; + if (F_status_is_error_not(state->status)) { + if (private_fl_payload_header_map_number_unsigned(data, state, internal, quantitys.array[internal->l].total) == F_true) return F_true; + if (private_fl_payload_helper_header_map_destination_write_buffer(data, state, internal, data->cache, destinations) == F_true) return F_true; + + state->status = f_string_dynamic_append_assure(f_fss_extended_next_s, &destinations->array[destinations->used].value); + } - state->status = f_string_dynamic_append_assure(f_fss_extended_next_s, &destinations->array[destinations->used].value); if (F_status_is_error(state->status)) return F_true; } // for @@ -1271,9 +1301,11 @@ extern "C" { no_data = F_false; state->status = f_string_dynamic_append(internal->quote_null, &destinations->array[destinations->used].value); - if (F_status_is_error(state->status)) return F_true; - state->status = f_string_dynamic_append_assure(f_fss_extended_next_s, &destinations->array[destinations->used].value); + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(f_fss_extended_next_s, &destinations->array[destinations->used].value); + } + if (F_status_is_error(state->status)) return F_true; } @@ -1289,12 +1321,14 @@ extern "C" { data->cache->used = 0; state->status = f_string_dynamic_append_assure(f_fss_extended_next_s, &destinations->array[destinations->used].value); - if (F_status_is_error(state->status)) return F_true; - if (private_fl_payload_header_map_number_unsigned(data, state, internal, ranges.array[internal->l].stop) == F_true) return F_true; - if (private_fl_payload_helper_header_map_destination_write_buffer(data, state, internal, data->cache, destinations) == F_true) return F_true; + if (F_status_is_error_not(state->status)) { + if (private_fl_payload_header_map_number_unsigned(data, state, internal, ranges.array[internal->l].stop) == F_true) return F_true; + if (private_fl_payload_helper_header_map_destination_write_buffer(data, state, internal, data->cache, destinations) == F_true) return F_true; + + state->status = f_string_dynamic_append_assure(f_fss_extended_next_s, &destinations->array[destinations->used].value); + } - state->status = f_string_dynamic_append_assure(f_fss_extended_next_s, &destinations->array[destinations->used].value); if (F_status_is_error(state->status)) return F_true; } // for @@ -1379,9 +1413,11 @@ extern "C" { if (data->flag & f_fss_payload_header_map_flag_join_strings_e) { state->status = f_string_dynamic_append(string_static, data->cache); - if (F_status_is_error(state->status)) return F_true; - state->status = f_string_dynamic_append_assure(f_string_space_s, data->cache); + if (F_status_is_error_not(state->status)) { + state->status = f_string_dynamic_append_assure(f_string_space_s, data->cache); + } + if (F_status_is_error(state->status)) return F_true; } else { diff --git a/level_1/fl_fss/c/private-fss-list.c b/level_1/fl_fss/c/private-fss-list.c index 522fad358..9a0918a3d 100644 --- a/level_1/fl_fss/c/private-fss-list.c +++ b/level_1/fl_fss/c/private-fss-list.c @@ -27,7 +27,7 @@ extern "C" { } // Return found nothing if this line only contains white space and delimit placeholders. - if (buffer.string[range->start] == f_fss_eol_s.string[0]) { + if (state->status == F_okay_eol) { // Move the start position to after the EOL. ++range->start; @@ -205,7 +205,7 @@ extern "C" { return; } - if (buffer.string[range->start] == f_fss_eol_s.string[0]) { + if (state->status == F_okay_eol) { found->stop = range->start; range->start = slash_first; @@ -345,7 +345,7 @@ extern "C" { return; } - if (buffer.string[range->start] == f_fss_eol_s.string[0]) { + if (state->status == F_okay_eol) { found->start = start; found->stop = stop + macro_f_utf_byte_width(buffer.string[stop]) - 1; ++range->start;