At some point I changed the behavior to return F_data_not when the main string (usually buffer) has used set to 0.
I failed to update the FSS processing functions to handle this.
The documentation comments are also not up to date in this regard and is now updated.
f_fss_skip_past_space(buffer, range, state);
if (F_status_is_error(state->status)) return;
+ if (state->status == F_data_not) return;
if (state->status == F_none_eol) {
++range->start;
f_fss_skip_past_delimit(content, range, state);
if (F_status_is_error(state->status)) return;
+ if (state->status == F_data_not) return;
if (range->start > range->stop || range->start >= content.used) {
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
- * @return
- * F_fss_found_content on success and content was found (start location is at end of content).
- * F_fss_found_content_not on success and no content was found (start location is after character designating this is not a content).
- * F_none_eos on success after reaching the end of the buffer (a valid object is not yet confirmed).
- * F_none_stop on success after reaching stopping point (a valid object is not yet confirmed).
- * F_data_not_eos no objects found after reaching the end of the buffer (essentially only comments are found).
- * F_data_not_stop no data found after reaching stopping point (essentially only comments are found).
- * F_end_not_group_eos if EOS was reached before the a group termination was reached.
- * F_end_not_group_stop if stop point was reached before the a group termination was reached.
- *
- * F_interrupt (with error bit) if stopping due to an interrupt.
- * F_parameter (with error bit) if a parameter is invalid.
- *
- * Errors (with error bit) from: f_fss_skip_past_delimit().
- * Errors (with error bit) from: f_fss_skip_past_space().
- * Errors (with error bit) from: f_string_ranges_increase().
- * Errors (with error bit) from: f_utf_buffer_increment().
+ * This alters state.status:
+ * F_fss_found_content on success and content was found (start location is at end of content).
+ * F_fss_found_content_not on success and no content was found (start location is after character designating this is not a content).
+ * F_none_eos on success after reaching the end of the buffer (a valid object is not yet confirmed).
+ * F_none_stop on success after reaching stopping point (a valid object is not yet confirmed).
+ * F_data_not if buffer is empty (buffer.used is 0).
+ * F_data_not_eos no objects found after reaching the end of the buffer (essentially only comments are found).
+ * F_data_not_stop no data found after reaching stopping point (essentially only comments are found).
+ * F_end_not_group_eos if EOS was reached before the a group termination was reached.
+ * F_end_not_group_stop if stop point was reached before the a group termination was reached.
+ *
+ * F_interrupt (with error bit) if stopping due to an interrupt.
+ * F_parameter (with error bit) if a parameter is invalid.
+ *
+ * Errors (with error bit) from: f_fss_skip_past_delimit().
+ * Errors (with error bit) from: f_fss_skip_past_space().
+ * Errors (with error bit) from: f_string_ranges_increase().
+ * Errors (with error bit) from: f_utf_buffer_increment().
*
* @see f_fss_skip_past_delimit()
* @see f_fss_skip_past_space()
* When state.interrupt() returns, only F_interrupt and F_interrupt_not are processed.
* Error bit designates an error but must be passed along with F_interrupt.
*
- * @return
- * F_none on success.
- * F_none_eos on success after reaching the end of the buffer.
- * F_none_stop on success after reaching the range stop.
- * F_data_not_stop no data to write due start location being greater than stop location.
- * F_data_not_eos no data to write due start location being greater than or equal to buffer size.
+ * This alters state.status:
+ * F_none on success.
+ * F_none_eos on success after reaching the end of the buffer.
+ * F_none_stop on success after reaching the range stop.
+ * F_data_not if content is empty (content.used is 0).
+ * F_data_not_eos no data to write due start location being greater than or equal to buffer size.
+ * F_data_not_stop no data to write due start location being greater than stop location.
*
- * F_interrupt (with error bit) if stopping due to an interrupt.
- * F_none_eol (with error bit) after reaching an EOL, which is not supported by the standard.
- * F_parameter (with error bit) if a parameter is invalid.
+ * F_interrupt (with error bit) if stopping due to an interrupt.
+ * F_none_eol (with error bit) after reaching an EOL, which is not supported by the standard.
+ * F_parameter (with error bit) if a parameter is invalid.
*
- * Errors (with error bit) from: f_fss_skip_past_delimit().
- * Errors (with error bit) from: f_string_dynamic_increase().
- * Errors (with error bit) from: f_string_dynamic_increase_by().
+ * Errors (with error bit) from: f_fss_skip_past_delimit().
+ * Errors (with error bit) from: f_string_dynamic_increase().
+ * Errors (with error bit) from: f_string_dynamic_increase_by().
*
* @see f_fss_skip_past_delimit()
* @see f_string_dynamic_increase()
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
- * @return
- * F_fss_found_object on success and object was found (start location is at end of object).
- * F_fss_found_object_content_not on success but object ended at the line so there can be no content.
- * F_fss_found_object_not on success and no object was found (start location is after character designating this is not an object).
- * F_none_eos on success after reaching the end of the buffer (a valid object is not yet confirmed).
- * F_none_stop on success after reaching stopping point (a valid object is not yet confirmed).
- * F_data_not_eos no objects found after reaching the end of the buffer (essentially only comments are found).
- * F_data_not_stop no data found after reaching stopping point (essentially only comments are found).
- * F_end_not_group_eos if EOS was reached before the a group termination was reached.
- * F_end_not_group_stop if stop point was reached before the a group termination was reached.
- *
- * F_interrupt (with error bit) if stopping due to an interrupt.
- * F_parameter (with error bit) if a parameter is invalid.
- *
- * Errors (with error bit) from: f_array_lengths_increase().
- * Errors (with error bit) from: f_array_lengths_increase_by().
- * Errors (with error bit) from: f_fss_is_graph().
- * Errors (with error bit) from: f_fss_is_space().
- * Errors (with error bit) from: f_fss_is_zero_width().
- * Errors (with error bit) from: f_fss_seek_to_eol().
- * Errors (with error bit) from: f_fss_skip_past_delimit().
- * Errors (with error bit) from: f_fss_skip_past_space().
- * Errors (with error bit) from: f_utf_buffer_increment().
+ * This alters state.status:
+ * F_fss_found_object on success and object was found (start location is at end of object).
+ * F_fss_found_object_content_not on success but object ended at the line so there can be no content.
+ * F_fss_found_object_not on success and no object was found (start location is after character designating this is not an object).
+ * F_none_eos on success after reaching the end of the buffer (a valid object is not yet confirmed).
+ * F_none_stop on success after reaching stopping point (a valid object is not yet confirmed).
+ * F_data_not if buffer is empty (buffer.used is 0).
+ * F_data_not_eos no objects found after reaching the end of the buffer (essentially only comments are found).
+ * F_data_not_stop no data found after reaching stopping point (essentially only comments are found).
+ * F_end_not_group_eos if EOS was reached before the a group termination was reached.
+ * F_end_not_group_stop if stop point was reached before the a group termination was reached.
+ *
+ * F_interrupt (with error bit) if stopping due to an interrupt.
+ * F_parameter (with error bit) if a parameter is invalid.
+ *
+ * Errors (with error bit) from: f_array_lengths_increase().
+ * Errors (with error bit) from: f_array_lengths_increase_by().
+ * Errors (with error bit) from: f_fss_is_graph().
+ * Errors (with error bit) from: f_fss_is_space().
+ * Errors (with error bit) from: f_fss_is_zero_width().
+ * Errors (with error bit) from: f_fss_seek_to_eol().
+ * Errors (with error bit) from: f_fss_skip_past_delimit().
+ * Errors (with error bit) from: f_fss_skip_past_space().
+ * Errors (with error bit) from: f_utf_buffer_increment().
*
* @see f_array_lengths_increase()
* @see f_array_lengths_increase_by()
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
- * @return
- * F_none on success.
- * F_none_eos on success after reaching the end of the buffer.
- * F_none_stop on success after reaching the range stop.
- * F_data_not_stop no data to write due start location being greater than stop location.
- * F_data_not_eos no data to write due start location being greater than or equal to buffer size.
- *
- * F_interrupt (with error bit) if stopping due to an interrupt.
- * F_none_eol (with error bit) after reaching an EOL, which is not supported by the standard.
- * F_parameter (with error bit) if a parameter is invalid.
- *
- * Errors (with error bit) from: f_fss_is_space().
- * Errors (with error bit) from: f_fss_skip_past_delimit().
- * Errors (with error bit) from: f_fss_skip_past_space().
- * Errors (with error bit) from: f_string_dynamic_increase().
- * Errors (with error bit) from: f_string_dynamic_increase_by().
+ * This alters state.status:
+ * F_none on success.
+ * F_none_eos on success after reaching the end of the buffer.
+ * F_none_stop on success after reaching the range stop.
+ * F_data_not if object is empty (object.used is 0).
+ * F_data_not_eos no data to write due start location being greater than or equal to buffer size.
+ * F_data_not_stop no data to write due start location being greater than stop location.
+ *
+ * F_interrupt (with error bit) if stopping due to an interrupt.
+ * F_none_eol (with error bit) after reaching an EOL, which is not supported by the standard.
+ * F_parameter (with error bit) if a parameter is invalid.
+ *
+ * Errors (with error bit) from: f_fss_is_space().
+ * Errors (with error bit) from: f_fss_skip_past_delimit().
+ * Errors (with error bit) from: f_fss_skip_past_space().
+ * Errors (with error bit) from: f_string_dynamic_increase().
+ * Errors (with error bit) from: f_string_dynamic_increase_by().
*
* @see f_fss_is_space()
* @see f_fss_skip_past_delimit()
f_fss_skip_past_delimit(buffer, range, state);
if (F_status_is_error(state->status)) return;
+ if (state->status == F_data_not) return;
if (range->start >= buffer.used || range->start > range->stop) {
delimits->used = delimits_used;
f_fss_skip_past_delimit(content, range, state);
if (F_status_is_error(state->status)) return;
+ if (state->status == F_data_not) return;
if (state->status == F_none_stop || state->status == F_none_eos) {
if (complete == f_fss_complete_full_e || complete == f_fss_complete_full_trim_e || complete == f_fss_complete_end_e) {
f_fss_skip_past_space(buffer, range, state);
if (F_status_is_error(state->status)) return;
+ if (state->status == F_data_not) return;
if (state->status == F_none_eol) {
f_fss_skip_past_delimit(object, range, state);
if (F_status_is_error(state->status)) return;
+ if (state->status == F_data_not) return;
if (state->status == F_none_stop || state->status == F_none_eos) {
if (complete == f_fss_complete_partial_e || complete == f_fss_complete_partial_trim_e || complete == f_fss_complete_full_e || complete == f_fss_complete_full_trim_e) {
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
- * @return
- * F_fss_found_content on success and content was found (start location is at end of content).
- * F_fss_found_content_not on success and no content was found (start location is after character designating this is not a content).
- * F_none_eos on success after reaching the end of the buffer (a valid object is not yet confirmed).
- * F_none_stop on success after reaching stopping point (a valid object is not yet confirmed).
- * F_data_not_eos no objects found after reaching the end of the buffer (essentially only comments are found).
- * F_data_not_stop no data found after reaching stopping point (essentially only comments are found).
- * F_end_not_group_eos if EOS was reached before the a group termination was reached.
- * F_end_not_group_stop if stop point was reached before the a group termination was reached.
- *
- * F_interrupt (with error bit) if stopping due to an interrupt.
- * F_parameter (with error bit) if a parameter is invalid.
- *
- * Errors (with error bit) from: f_array_lengths_increase().
- * Errors (with error bit) from: f_array_lengths_increase_by().
- * Errors (with error bit) from: f_fss_is_space().
- * Errors (with error bit) from: f_fss_seek_to_eol().
- * Errors (with error bit) from: f_fss_skip_past_delimit().
- * Errors (with error bit) from: f_string_ranges_increase().
- * Errors (with error bit) from: f_utf_buffer_increment().
+ * This alters state.status:
+ * F_fss_found_content on success and content was found (start location is at end of content).
+ * F_fss_found_content_not on success and no content was found (start location is after character designating this is not a content).
+ * F_none_eos on success after reaching the end of the buffer (a valid object is not yet confirmed).
+ * F_none_stop on success after reaching stopping point (a valid object is not yet confirmed).
+ * F_data_not if buffer is empty (buffer.used is 0).
+ * F_data_not_eos no objects found after reaching the end of the buffer (essentially only comments are found).
+ * F_data_not_stop no data found after reaching stopping point (essentially only comments are found).
+ * F_end_not_group_eos if EOS was reached before the a group termination was reached.
+ * F_end_not_group_stop if stop point was reached before the a group termination was reached.
+ *
+ * F_interrupt (with error bit) if stopping due to an interrupt.
+ * F_parameter (with error bit) if a parameter is invalid.
+ *
+ * Errors (with error bit) from: f_array_lengths_increase().
+ * Errors (with error bit) from: f_array_lengths_increase_by().
+ * Errors (with error bit) from: f_fss_is_space().
+ * Errors (with error bit) from: f_fss_seek_to_eol().
+ * Errors (with error bit) from: f_fss_skip_past_delimit().
+ * Errors (with error bit) from: f_string_ranges_increase().
+ * Errors (with error bit) from: f_utf_buffer_increment().
*
* @see f_array_lengths_increase()
* @see f_array_lengths_increase_by()
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
- * @return
- * F_none on success.
- * F_none_eol on success after reaching the end of the line.
- * F_none_eos on success after reaching the end of the buffer.
- * F_data_not_stop no data to write due start location being greater than stop location.
- * F_data_not_eos no data to write due start location being greater than or equal to buffer size.
- * F_none_stop on success after reaching stopping point.
- *
- * F_interrupt (with error bit) if stopping due to an interrupt.
- * F_parameter (with error bit) if a parameter is invalid.
- *
- * Errors (with error bit) from: f_fss_is_graph().
- * Errors (with error bit) from: f_fss_skip_past_delimit().
- * Errors (with error bit) from: f_fss_skip_past_space().
- * Errors (with error bit) from: f_string_dynamic_append().
- * Errors (with error bit) from: f_string_dynamic_increase().
- * Errors (with error bit) from: f_string_dynamic_increase_by().
- * Errors (with error bit) from: f_utf_buffer_increment().
+ * This alters state.status:
+ * F_none on success.
+ * F_none_eol on success after reaching the end of the line.
+ * F_none_eos on success after reaching the end of the buffer.
+ * F_data_not if content is empty (content.used is 0).
+ * F_data_not_eos no data to write due start location being greater than or equal to buffer size.
+ * F_data_not_stop no data to write due start location being greater than stop location.
+ * F_none_stop on success after reaching stopping point.
+ *
+ * F_interrupt (with error bit) if stopping due to an interrupt.
+ * F_parameter (with error bit) if a parameter is invalid.
+ *
+ * Errors (with error bit) from: f_fss_is_graph().
+ * Errors (with error bit) from: f_fss_skip_past_delimit().
+ * Errors (with error bit) from: f_fss_skip_past_space().
+ * Errors (with error bit) from: f_string_dynamic_append().
+ * Errors (with error bit) from: f_string_dynamic_increase().
+ * Errors (with error bit) from: f_string_dynamic_increase_by().
+ * Errors (with error bit) from: f_utf_buffer_increment().
*
* @see f_fss_is_graph()
* @see f_fss_skip_past_delimit()
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
- * @return
- * F_fss_found_object on success and object was found (start location is at end of object).
- * F_fss_found_object_not on success and no object was found (start location is after character designating this is not an object).
- * F_none_eos on success after reaching the end of the buffer (a valid object is not yet confirmed).
- * F_none_stop on success after reaching stopping point (a valid object is not yet confirmed).
- * F_data_not_eos no objects found after reaching the end of the buffer (essentially only comments are found).
- * F_data_not_stop no data found after reaching stopping point (essentially only comments are found).
- * F_end_not_group_eos if EOS was reached before the a group termination was reached.
- * F_end_not_group_stop if stop point was reached before the a group termination was reached.
- *
- * F_interrupt (with error bit) if stopping due to an interrupt.
- * F_parameter (with error bit) if a parameter is invalid.
- *
- * Errors (with error bit) from: f_array_lengths_increase_by().
- * Errors (with error bit) from: f_fss_is_graph().
- * Errors (with error bit) from: f_fss_is_space().
- * Errors (with error bit) from: f_fss_is_zero_width().
- * Errors (with error bit) from: f_fss_seek_to_eol().
- * Errors (with error bit) from: f_fss_skip_past_delimit().
- * Errors (with error bit) from: f_fss_skip_past_space().
- * Errors (with error bit) from: f_utf_buffer_increment().
+ * This alters state.status:
+ * F_fss_found_object on success and object was found (start location is at end of object).
+ * F_fss_found_object_not on success and no object was found (start location is after character designating this is not an object).
+ * F_none_eos on success after reaching the end of the buffer (a valid object is not yet confirmed).
+ * F_none_stop on success after reaching stopping point (a valid object is not yet confirmed).
+ * F_data_not if buffer is empty (buffer.used is 0).
+ * F_data_not_eos no objects found after reaching the end of the buffer (essentially only comments are found).
+ * F_data_not_stop no data found after reaching stopping point (essentially only comments are found).
+ * F_end_not_group_eos if EOS was reached before the a group termination was reached.
+ * F_end_not_group_stop if stop point was reached before the a group termination was reached.
+ *
+ * F_interrupt (with error bit) if stopping due to an interrupt.
+ * F_parameter (with error bit) if a parameter is invalid.
+ *
+ * Errors (with error bit) from: f_array_lengths_increase_by().
+ * Errors (with error bit) from: f_fss_is_graph().
+ * Errors (with error bit) from: f_fss_is_space().
+ * Errors (with error bit) from: f_fss_is_zero_width().
+ * Errors (with error bit) from: f_fss_seek_to_eol().
+ * Errors (with error bit) from: f_fss_skip_past_delimit().
+ * Errors (with error bit) from: f_fss_skip_past_space().
+ * Errors (with error bit) from: f_utf_buffer_increment().
*
* @see f_array_lengths_increase_by()
* @see f_fss_is_graph()
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
- * @return
- * F_none on success.
- * F_none_eos on success after reaching the end of the buffer.
- * F_data_not_stop no data to write due start location being greater than stop location.
- * F_data_not_eos no data to write due start location being greater than or equal to buffer size.
- * F_none_stop on success after reaching stopping point.
- *
- * F_interrupt (with error bit) if stopping due to an interrupt.
- * F_none_eol (with error bit) after reaching an EOL, which is not supported by the standard.
- * F_parameter (with error bit) if a parameter is invalid.
- *
- * Errors (with error bit) from: f_fss_is_graph().
- * Errors (with error bit) from: f_fss_is_space().
- * Errors (with error bit) from: f_fss_skip_past_delimit().
- * Errors (with error bit) from: f_string_dynamic_increase().
- * Errors (with error bit) from: f_string_dynamic_increase_by().
- * Errors (with error bit) from: f_utf_buffer_increment().
+ * This alters state.status:
+ * F_none on success.
+ * F_none_eos on success after reaching the end of the buffer.
+ * F_data_not if object is empty (object.used is 0).
+ * F_data_not_eos no data to write due start location being greater than or equal to buffer size.
+ * F_data_not_stop no data to write due start location being greater than stop location.
+ * F_none_stop on success after reaching stopping point.
+ *
+ * F_interrupt (with error bit) if stopping due to an interrupt.
+ * F_none_eol (with error bit) after reaching an EOL, which is not supported by the standard.
+ * F_parameter (with error bit) if a parameter is invalid.
+ *
+ * Errors (with error bit) from: f_fss_is_graph().
+ * Errors (with error bit) from: f_fss_is_space().
+ * Errors (with error bit) from: f_fss_skip_past_delimit().
+ * Errors (with error bit) from: f_string_dynamic_increase().
+ * Errors (with error bit) from: f_string_dynamic_increase_by().
+ * Errors (with error bit) from: f_utf_buffer_increment().
*
* @see f_fss_is_graph()
* @see f_fss_is_space()
f_fss_skip_past_delimit(buffer, range, state);
if (F_status_is_error(state->status)) return;
+ if (state->status == F_data_not) return;
if (state->status == F_none_eos || state->status == F_none_stop) return;
state->status = f_fss_nest_increase(state->step_small, found);
f_fss_skip_past_delimit(content, range, state);
if (F_status_is_error(state->status)) return;
+ if (state->status == F_data_not) return;
if (state->status == F_none_eos) {
state->status = F_data_not_eos;
f_fss_skip_past_space(buffer, range, state);
if (F_status_is_error(state->status)) return;
+ if (state->status == F_data_not) return;
if (state->status == F_none_eol) {
f_fss_skip_past_delimit(object, range, state);
if (F_status_is_error(state->status)) return;
+ if (state->status == F_data_not) return;
if (state->status == F_none_eos) {
state->status = F_data_not_eos;
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
- * @return
- * F_fss_found_content on success and content was found (start location is at end of content).
- * F_fss_found_content_not on success and no content was found (start location is after character designating this is not a content).
- * F_none_eos on success after reaching the end of the buffer (a valid object is not yet confirmed).
- * F_none_stop on success after reaching stopping point (a valid object is not yet confirmed).
- * F_data_not_eos no objects found after reaching the end of the buffer (essentially only comments are found).
- * F_data_not_stop no data found after reaching stopping point (essentially only comments are found).
- * F_end_not_group_eos if EOS was reached before the a group termination was reached.
- * F_end_not_group_stop if stop point was reached before the a group termination was reached.
- *
- * F_interrupt (with error bit) if stopping due to an interrupt.
- * F_parameter (with error bit) if a parameter is invalid.
- *
- * Errors (with error bit) from: f_array_lengths_increase().
- * Errors (with error bit) from: f_array_lengths_increase_by().
- * Errors (with error bit) from: f_fss_is_space().
- * Errors (with error bit) from: f_fss_nest_increase().
- * Errors (with error bit) from: f_fss_seek_to_eol().
- * Errors (with error bit) from: f_fss_skip_past_delimit().
- * Errors (with error bit) from: f_string_ranges_increase().
- * Errors (with error bit) from: f_utf_buffer_increment().
+ * This alters state.status:
+ * F_fss_found_content on success and content was found (start location is at end of content).
+ * F_fss_found_content_not on success and no content was found (start location is after character designating this is not a content).
+ * F_none_eos on success after reaching the end of the buffer (a valid object is not yet confirmed).
+ * F_none_stop on success after reaching stopping point (a valid object is not yet confirmed).
+ * F_data_not if buffer is empty (buffer.used is 0).
+ * F_data_not_eos no objects found after reaching the end of the buffer (essentially only comments are found).
+ * F_data_not_stop no data found after reaching stopping point (essentially only comments are found).
+ * F_end_not_group_eos if EOS was reached before the a group termination was reached.
+ * F_end_not_group_stop if stop point was reached before the a group termination was reached.
+ *
+ * F_interrupt (with error bit) if stopping due to an interrupt.
+ * F_parameter (with error bit) if a parameter is invalid.
+ *
+ * Errors (with error bit) from: f_array_lengths_increase().
+ * Errors (with error bit) from: f_array_lengths_increase_by().
+ * Errors (with error bit) from: f_fss_is_space().
+ * Errors (with error bit) from: f_fss_nest_increase().
+ * Errors (with error bit) from: f_fss_seek_to_eol().
+ * Errors (with error bit) from: f_fss_skip_past_delimit().
+ * Errors (with error bit) from: f_string_ranges_increase().
+ * Errors (with error bit) from: f_utf_buffer_increment().
*
* @see f_array_lengths_increase()
* @see f_array_lengths_increase_by()
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
- * @return
- * F_none on success.
- * F_none_eos on success after reaching the end of the buffer.
- * F_data_not_stop no data to write due start location being greater than stop location.
- * F_data_not_eos no data to write due start location being greater than or equal to buffer size.
- * F_none_stop on success after reaching stopping point.
- *
- * F_interrupt (with error bit) if stopping due to an interrupt.
- * F_parameter (with error bit) if a parameter is invalid.
- *
- * Errors (with error bit) from: f_fss_is_graph().
- * Errors (with error bit) from: f_fss_skip_past_delimit().
- * Errors (with error bit) from: f_fss_skip_past_space().
- * Errors (with error bit) from: f_string_dynamic_append().
- * Errors (with error bit) from: f_string_dynamic_increase().
- * Errors (with error bit) from: f_string_dynamic_increase_by().
- * Errors (with error bit) from: f_utf_buffer_increment().
+ * This alters state.status:
+ * F_none on success.
+ * F_none_eos on success after reaching the end of the buffer.
+ * F_data_not if content is empty (content.used is 0).
+ * F_data_not_eos no data to write due start location being greater than or equal to buffer size.
+ * F_data_not_stop no data to write due start location being greater than stop location.
+ * F_none_stop on success after reaching stopping point.
+ *
+ * F_interrupt (with error bit) if stopping due to an interrupt.
+ * F_parameter (with error bit) if a parameter is invalid.
+ *
+ * Errors (with error bit) from: f_fss_is_graph().
+ * Errors (with error bit) from: f_fss_skip_past_delimit().
+ * Errors (with error bit) from: f_fss_skip_past_space().
+ * Errors (with error bit) from: f_string_dynamic_append().
+ * Errors (with error bit) from: f_string_dynamic_increase().
+ * Errors (with error bit) from: f_string_dynamic_increase_by().
+ * Errors (with error bit) from: f_utf_buffer_increment().
*
* @see f_fss_is_graph()
* @see f_fss_skip_past_delimit()
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
- * @return
- * F_fss_found_object on success and object was found (start location is at end of object).
- * F_fss_found_object_not on success and no object was found (start location is after character designating this is not an object).
- * F_none_eos on success after reaching the end of the buffer (a valid object is not yet confirmed).
- * F_none_stop on success after reaching stopping point (a valid object is not yet confirmed).
- * F_data_not_eos no objects found after reaching the end of the buffer (essentially only comments are found).
- * F_data_not_stop no data found after reaching stopping point (essentially only comments are found).
- * F_end_not_group_eos if EOS was reached before the a group termination was reached.
- * F_end_not_group_stop if stop point was reached before the a group termination was reached.
- *
- * F_interrupt (with error bit) if stopping due to an interrupt.
- * F_parameter (with error bit) if a parameter is invalid.
- *
- * Errors (with error bit) from: f_array_lengths_increase_by().
- * Errors (with error bit) from: f_fss_is_graph().
- * Errors (with error bit) from: f_fss_is_space().
- * Errors (with error bit) from: f_fss_is_zero_width().
- * Errors (with error bit) from: f_fss_seek_to_eol().
- * Errors (with error bit) from: f_fss_skip_past_delimit().
- * Errors (with error bit) from: f_fss_skip_past_space().
- * Errors (with error bit) from: f_utf_buffer_increment().
+ * This alters state.status:
+ * F_fss_found_object on success and object was found (start location is at end of object).
+ * F_fss_found_object_not on success and no object was found (start location is after character designating this is not an object).
+ * F_none_eos on success after reaching the end of the buffer (a valid object is not yet confirmed).
+ * F_none_stop on success after reaching stopping point (a valid object is not yet confirmed).
+ * F_data_not if buffer is empty (buffer.used is 0).
+ * F_data_not_eos no objects found after reaching the end of the buffer (essentially only comments are found).
+ * F_data_not_stop no data found after reaching stopping point (essentially only comments are found).
+ * F_end_not_group_eos if EOS was reached before the a group termination was reached.
+ * F_end_not_group_stop if stop point was reached before the a group termination was reached.
+ *
+ * F_interrupt (with error bit) if stopping due to an interrupt.
+ * F_parameter (with error bit) if a parameter is invalid.
+ *
+ * Errors (with error bit) from: f_array_lengths_increase_by().
+ * Errors (with error bit) from: f_fss_is_graph().
+ * Errors (with error bit) from: f_fss_is_space().
+ * Errors (with error bit) from: f_fss_is_zero_width().
+ * Errors (with error bit) from: f_fss_seek_to_eol().
+ * Errors (with error bit) from: f_fss_skip_past_delimit().
+ * Errors (with error bit) from: f_fss_skip_past_space().
+ * Errors (with error bit) from: f_utf_buffer_increment().
*
* @see f_array_lengths_increase_by()
* @see f_fss_is_graph()
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
- * @return
- * F_none on success.
- * F_none_eos on success after reaching the end of the buffer.
- * F_data_not_stop no data to write due start location being greater than stop location.
- * F_data_not_eos no data to write due start location being greater than or equal to buffer size.
- * F_none_stop on success after reaching stopping point.
- *
- * F_interrupt (with error bit) if stopping due to an interrupt.
- * F_none_eol (with error bit) after reaching an EOL, which is not supported by the standard.
- * F_parameter (with error bit) if a parameter is invalid.
- *
- * Errors (with error bit) from: f_fss_is_graph().
- * Errors (with error bit) from: f_fss_is_space().
- * Errors (with error bit) from: f_fss_skip_past_delimit().
- * Errors (with error bit) from: f_string_dynamic_increase().
- * Errors (with error bit) from: f_string_dynamic_increase_by().
- * Errors (with error bit) from: f_utf_buffer_increment().
+ * This alters state.status:
+ * F_none on success.
+ * F_none_eos on success after reaching the end of the buffer.
+ * F_data_not if object is empty (object.used is 0).
+ * F_data_not_eos no data to write due start location being greater than or equal to buffer size.
+ * F_data_not_stop no data to write due start location being greater than stop location.
+ * F_none_stop on success after reaching stopping point.
+ *
+ * F_interrupt (with error bit) if stopping due to an interrupt.
+ * F_none_eol (with error bit) after reaching an EOL, which is not supported by the standard.
+ * F_parameter (with error bit) if a parameter is invalid.
+ *
+ * Errors (with error bit) from: f_fss_is_graph().
+ * Errors (with error bit) from: f_fss_is_space().
+ * Errors (with error bit) from: f_fss_skip_past_delimit().
+ * Errors (with error bit) from: f_string_dynamic_increase().
+ * Errors (with error bit) from: f_string_dynamic_increase_by().
+ * Errors (with error bit) from: f_utf_buffer_increment().
*
* @see f_fss_is_graph()
* @see f_fss_is_space()
f_fss_skip_past_space(buffer, range, state);
if (F_status_is_error(state->status)) return;
+ if (state->status == F_data_not) return;
if (state->status == F_none_eol) {
++range->start;
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
- * @return
- * F_fss_found_content on success and content was found (start location is at end of content).
- * F_fss_found_content_not on success and no content was found (start location is after character designating this is not a content).
- * F_none_eos on success after reaching the end of the buffer (a valid object is not yet confirmed).
- * F_none_stop on success after reaching stopping point (a valid object is not yet confirmed).
- * F_data_not_eos no objects found after reaching the end of the buffer (essentially only comments are found).
- * F_data_not_stop no data found after reaching stopping point (essentially only comments are found).
- * F_end_not_group_eos if EOS was reached before the a group termination was reached.
- * F_end_not_group_stop if stop point was reached before the a group termination was reached.
- *
- * F_interrupt (with error bit) if stopping due to an interrupt.
- * F_parameter (with error bit) if a parameter is invalid.
- *
- * Errors (with error bit) from: f_array_lengths_increase().
- * Errors (with error bit) from: f_array_lengths_increase_by().
- * Errors (with error bit) from: f_fss_is_graph().
- * Errors (with error bit) from: f_fss_is_space().
- * Errors (with error bit) from: f_fss_is_zero_width().
- * Errors (with error bit) from: f_fss_skip_past_delimit().
- * Errors (with error bit) from: f_fss_skip_past_space().
- * Errors (with error bit) from: f_utf_buffer_increment().
+ * This alters state.status:
+ * F_fss_found_content on success and content was found (start location is at end of content).
+ * F_fss_found_content_not on success and no content was found (start location is after character designating this is not a content).
+ * F_none_eos on success after reaching the end of the buffer (a valid object is not yet confirmed).
+ * F_none_stop on success after reaching stopping point (a valid object is not yet confirmed).
+ * F_data_not if buffer is empty (buffer.used is 0).
+ * F_data_not_eos no objects found after reaching the end of the buffer (essentially only comments are found).
+ * F_data_not_stop no data found after reaching stopping point (essentially only comments are found).
+ * F_end_not_group_eos if EOS was reached before the a group termination was reached.
+ * F_end_not_group_stop if stop point was reached before the a group termination was reached.
+ *
+ * F_interrupt (with error bit) if stopping due to an interrupt.
+ * F_parameter (with error bit) if a parameter is invalid.
+ *
+ * Errors (with error bit) from: f_array_lengths_increase().
+ * Errors (with error bit) from: f_array_lengths_increase_by().
+ * Errors (with error bit) from: f_fss_is_graph().
+ * Errors (with error bit) from: f_fss_is_space().
+ * Errors (with error bit) from: f_fss_is_zero_width().
+ * Errors (with error bit) from: f_fss_skip_past_delimit().
+ * Errors (with error bit) from: f_fss_skip_past_space().
+ * Errors (with error bit) from: f_utf_buffer_increment().
*
* @see f_array_lengths_increase()
* @see f_array_lengths_increase_by()
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
- * @return
- * F_none on success.
- * F_none_eos on success after reaching the end of the buffer.
- * F_none_stop on success after reaching the range stop.
- * F_data_not_stop no data to write due start location being greater than stop location.
- * F_data_not_eos no data to write due start location being greater than or equal to buffer size.
- *
- * F_interrupt (with error bit) if stopping due to an interrupt.
- * F_none_eol (with error bit) after reaching an EOL, which is not supported by the standard.
- * F_parameter (with error bit) if a parameter is invalid.
- *
- * Errors (with error bit) from: f_fss_is_space().
- * Errors (with error bit) from: f_fss_skip_past_delimit().
- * Errors (with error bit) from: f_fss_skip_past_space().
- * Errors (with error bit) from: f_string_dynamic_increase().
- * Errors (with error bit) from: f_string_dynamic_increase_by().
- * Errors (with error bit) from: f_utf_buffer_increment().
+ * This alters state.status:
+ * F_none on success.
+ * F_none_eos on success after reaching the end of the buffer.
+ * F_none_stop on success after reaching the range stop.
+ * F_data_not if content is empty (content.used is 0).
+ * F_data_not_eos no data to write due start location being greater than or equal to buffer size.
+ * F_data_not_stop no data to write due start location being greater than stop location.
+ *
+ * F_interrupt (with error bit) if stopping due to an interrupt.
+ * F_none_eol (with error bit) after reaching an EOL, which is not supported by the standard.
+ * F_parameter (with error bit) if a parameter is invalid.
+ *
+ * Errors (with error bit) from: f_fss_is_space().
+ * Errors (with error bit) from: f_fss_skip_past_delimit().
+ * Errors (with error bit) from: f_fss_skip_past_space().
+ * Errors (with error bit) from: f_string_dynamic_increase().
+ * Errors (with error bit) from: f_string_dynamic_increase_by().
+ * Errors (with error bit) from: f_utf_buffer_increment().
*
* @see f_fss_is_space()
* @see f_fss_skip_past_delimit()
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
- * @return
- * F_fss_found_object on success and object was found (start location is at end of object).
- * F_fss_found_object_content_not on success but object ended at the line so there can be no content.
- * F_fss_found_object_not on success and no object was found (start location is after character designating this is not an object).
- * F_none_eos on success after reaching the end of the buffer (a valid object is not yet confirmed).
- * F_none_stop on success after reaching stopping point (a valid object is not yet confirmed).
- * F_data_not_eos no objects found after reaching the end of the buffer (essentially only comments are found).
- * F_data_not_stop no data found after reaching stopping point (essentially only comments are found).
- * F_end_not_group_eos if EOS was reached before the a group termination was reached.
- * F_end_not_group_stop if stop point was reached before the a group termination was reached.
- *
- * F_interrupt (with error bit) if stopping due to an interrupt.
- * F_parameter (with error bit) if a parameter is invalid.
- *
- * Errors (with error bit) from: f_array_lengths_increase().
- * Errors (with error bit) from: f_array_lengths_increase_by().
- * Errors (with error bit) from: f_fss_is_graph().
- * Errors (with error bit) from: f_fss_is_space().
- * Errors (with error bit) from: f_fss_is_zero_width().
- * Errors (with error bit) from: f_fss_skip_past_delimit().
- * Errors (with error bit) from: f_fss_skip_past_space().
- * Errors (with error bit) from: f_string_ranges_increase().
- * Errors (with error bit) from: f_uint8s_increase().
- * Errors (with error bit) from: f_utf_buffer_increment().
+ * This alters state.status:
+ * F_fss_found_object on success and object was found (start location is at end of object).
+ * F_fss_found_object_content_not on success but object ended at the line so there can be no content.
+ * F_fss_found_object_not on success and no object was found (start location is after character designating this is not an object).
+ * F_none_eos on success after reaching the end of the buffer (a valid object is not yet confirmed).
+ * F_none_stop on success after reaching stopping point (a valid object is not yet confirmed).
+ * F_data_not if buffer is empty (buffer.used is 0).
+ * F_data_not_eos no objects found after reaching the end of the buffer (essentially only comments are found).
+ * F_data_not_stop no data found after reaching stopping point (essentially only comments are found).
+ * F_end_not_group_eos if EOS was reached before the a group termination was reached.
+ * F_end_not_group_stop if stop point was reached before the a group termination was reached.
+ *
+ * F_interrupt (with error bit) if stopping due to an interrupt.
+ * F_parameter (with error bit) if a parameter is invalid.
+ *
+ * Errors (with error bit) from: f_array_lengths_increase().
+ * Errors (with error bit) from: f_array_lengths_increase_by().
+ * Errors (with error bit) from: f_fss_is_graph().
+ * Errors (with error bit) from: f_fss_is_space().
+ * Errors (with error bit) from: f_fss_is_zero_width().
+ * Errors (with error bit) from: f_fss_skip_past_delimit().
+ * Errors (with error bit) from: f_fss_skip_past_space().
+ * Errors (with error bit) from: f_string_ranges_increase().
+ * Errors (with error bit) from: f_uint8s_increase().
+ * Errors (with error bit) from: f_utf_buffer_increment().
*
* @see f_array_lengths_increase()
* @see f_array_lengths_increase_by()
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
- * @return
- * F_none on success.
- * F_none_eos on success after reaching the end of the buffer.
- * F_none_stop on success after reaching the range stop.
- * F_data_not_stop no data to write due start location being greater than stop location.
- * F_data_not_eos no data to write due start location being greater than or equal to buffer size.
- *
- * F_interrupt (with error bit) if stopping due to an interrupt.
- * F_none_eol (with error bit) after reaching an EOL, which is not supported by the standard.
- * F_parameter (with error bit) if a parameter is invalid.
- *
- * Errors (with error bit) from: f_fss_is_space().
- * Errors (with error bit) from: f_fss_skip_past_delimit().
- * Errors (with error bit) from: f_fss_skip_past_space().
- * Errors (with error bit) from: f_string_dynamic_increase().
- * Errors (with error bit) from: f_string_dynamic_increase_by().
+ * This alters state.status:
+ * F_none on success.
+ * F_none_eos on success after reaching the end of the buffer.
+ * F_none_stop on success after reaching the range stop.
+ * F_data_not if object is empty (object.used is 0).
+ * F_data_not_eos no data to write due start location being greater than or equal to buffer size.
+ * F_data_not_stop no data to write due start location being greater than stop location.
+ *
+ * F_interrupt (with error bit) if stopping due to an interrupt.
+ * F_none_eol (with error bit) after reaching an EOL, which is not supported by the standard.
+ * F_parameter (with error bit) if a parameter is invalid.
+ *
+ * Errors (with error bit) from: f_fss_is_space().
+ * Errors (with error bit) from: f_fss_skip_past_delimit().
+ * Errors (with error bit) from: f_fss_skip_past_space().
+ * Errors (with error bit) from: f_string_dynamic_increase().
+ * Errors (with error bit) from: f_string_dynamic_increase_by().
*
* @see f_fss_is_space()
* @see f_fss_skip_past_delimit()
f_fss_skip_past_delimit(buffer, range, state);
if (F_status_is_error(state->status)) return;
+ if (state->status == F_data_not) return;
if (range->start >= buffer.used || range->start > range->stop) {
delimits->used = delimits_used;
f_fss_skip_past_delimit(content, range, state);
if (F_status_is_error(state->status)) return;
+ if (state->status == F_data_not) return;
if (state->status == F_none_eos) {
state->status = F_data_not_eos;
f_fss_skip_past_space(buffer, range, state);
if (F_status_is_error(state->status)) return;
+ if (state->status == F_data_not) return;
if (state->status == F_none_eol) {
f_fss_skip_past_delimit(object, range, state);
if (F_status_is_error(state->status)) return;
+ if (state->status == F_data_not) return;
if (state->status == F_none_eos) {
state->status = F_data_not_eos;
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
- * @return
- * F_fss_found_content on success and content was found (start location is at end of content).
- * F_fss_found_content_not on success and no content was found (start location is after character designating this is not a content).
- * F_none_eos on success after reaching the end of the buffer (a valid content is not yet confirmed).
- * F_none_stop on success after reaching stopping point (a valid content is not yet confirmed).
- * F_data_not_eos no content found after reaching the end of the buffer (essentially only comments are found).
- * F_data_not_stop no content found after reaching stopping point (essentially only comments are found).
- * F_end_not_group_eos if EOS was reached before the a group termination was reached.
- * F_end_not_group_stop if stop point was reached before the a group termination was reached.
- *
- * F_interrupt (with error bit) if stopping due to an interrupt.
- * F_parameter (with error bit) if a parameter is invalid.
- *
- * Errors (with error bit) from: f_array_lengths_increase().
- * Errors (with error bit) from: f_array_lengths_increase_by().
- * Errors (with error bit) from: f_fss_is_space().
- * Errors (with error bit) from: f_fss_seek_to_eol().
- * Errors (with error bit) from: f_fss_skip_past_delimit().
- * Errors (with error bit) from: f_string_ranges_increase().
- * Errors (with error bit) from: f_utf_buffer_increment().
+ * This alters state.status:
+ * F_fss_found_content on success and content was found (start location is at end of content).
+ * F_fss_found_content_not on success and no content was found (start location is after character designating this is not a content).
+ * F_none_eos on success after reaching the end of the buffer (a valid content is not yet confirmed).
+ * F_none_stop on success after reaching stopping point (a valid content is not yet confirmed).
+ * F_data_not if buffer is empty (buffer.used is 0).
+ * F_data_not_eos no content found after reaching the end of the buffer (essentially only comments are found).
+ * F_data_not_stop no content found after reaching stopping point (essentially only comments are found).
+ * F_end_not_group_eos if EOS was reached before the a group termination was reached.
+ * F_end_not_group_stop if stop point was reached before the a group termination was reached.
+ *
+ * F_interrupt (with error bit) if stopping due to an interrupt.
+ * F_parameter (with error bit) if a parameter is invalid.
+ *
+ * Errors (with error bit) from: f_array_lengths_increase().
+ * Errors (with error bit) from: f_array_lengths_increase_by().
+ * Errors (with error bit) from: f_fss_is_space().
+ * Errors (with error bit) from: f_fss_seek_to_eol().
+ * Errors (with error bit) from: f_fss_skip_past_delimit().
+ * Errors (with error bit) from: f_string_ranges_increase().
+ * Errors (with error bit) from: f_utf_buffer_increment().
*
* @see f_array_lengths_increase()
* @see f_array_lengths_increase_by()
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
- * @return
- * F_none on success.
- * F_none_eos on success after reaching the end of the buffer.
- * F_data_not_stop no data to write due start location being greater than stop location.
- * F_data_not_eos no data to write due start location being greater than or equal to buffer size.
- * F_none_stop on success after reaching stopping point.
- *
- * F_interrupt (with error bit) if stopping due to an interrupt.
- * F_parameter (with error bit) if a parameter is invalid.
- *
- * Errors (with error bit) from: f_fss_is_graph().
- * Errors (with error bit) from: f_fss_skip_past_delimit().
- * Errors (with error bit) from: f_fss_skip_past_space().
- * Errors (with error bit) from: f_string_dynamic_append().
- * Errors (with error bit) from: f_string_dynamic_increase().
- * Errors (with error bit) from: f_string_dynamic_increase_by().
- * Errors (with error bit) from: f_utf_buffer_increment().
+ * This alters state.status:
+ * F_none on success.
+ * F_none_eos on success after reaching the end of the buffer.
+ * F_data_not if content is empty (content.used is 0).
+ * F_data_not_eos no data to write due start location being greater than or equal to buffer size.
+ * F_data_not_stop no data to write due start location being greater than stop location.
+ * F_none_stop on success after reaching stopping point.
+ *
+ * F_interrupt (with error bit) if stopping due to an interrupt.
+ * F_parameter (with error bit) if a parameter is invalid.
+ *
+ * Errors (with error bit) from: f_fss_is_graph().
+ * Errors (with error bit) from: f_fss_skip_past_delimit().
+ * Errors (with error bit) from: f_fss_skip_past_space().
+ * Errors (with error bit) from: f_string_dynamic_append().
+ * Errors (with error bit) from: f_string_dynamic_increase().
+ * Errors (with error bit) from: f_string_dynamic_increase_by().
+ * Errors (with error bit) from: f_utf_buffer_increment().
*
* @see f_fss_is_graph()
* @see f_fss_skip_past_delimit()
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
- * @return
- * F_fss_found_object on success and object was found (start location is at end of object).
- * F_fss_found_object_not on success and no object was found (start location is after character designating this is not an object).
- * F_none_eos on success after reaching the end of the buffer (a valid object is not yet confirmed).
- * F_none_stop on success after reaching stopping point (a valid object is not yet confirmed).
- * F_data_not_eos no objects found after reaching the end of the buffer (essentially only comments are found).
- * F_data_not_stop no data found after reaching stopping point (essentially only comments are found).
- * F_end_not_group_eos if EOS was reached before the a group termination was reached.
- * F_end_not_group_stop if stop point was reached before the a group termination was reached.
- *
- * F_interrupt (with error bit) if stopping due to an interrupt.
- * F_parameter (with error bit) if a parameter is invalid.
- *
- * Errors (with error bit) from: f_array_lengths_increase_by().
- * Errors (with error bit) from: f_fss_is_graph().
- * Errors (with error bit) from: f_fss_is_space().
- * Errors (with error bit) from: f_fss_is_zero_width().
- * Errors (with error bit) from: f_fss_seek_to_eol().
- * Errors (with error bit) from: f_fss_skip_past_delimit().
- * Errors (with error bit) from: f_fss_skip_past_space().
- * Errors (with error bit) from: f_utf_buffer_increment().
+ * This alters state.status:
+ * F_fss_found_object on success and object was found (start location is at end of object).
+ * F_fss_found_object_not on success and no object was found (start location is after character designating this is not an object).
+ * F_none_eos on success after reaching the end of the buffer (a valid object is not yet confirmed).
+ * F_none_stop on success after reaching stopping point (a valid object is not yet confirmed).
+ * F_data_not if buffer is empty (buffer.used is 0).
+ * F_data_not_eos no objects found after reaching the end of the buffer (essentially only comments are found).
+ * F_data_not_stop no data found after reaching stopping point (essentially only comments are found).
+ * F_end_not_group_eos if EOS was reached before the a group termination was reached.
+ * F_end_not_group_stop if stop point was reached before the a group termination was reached.
+ *
+ * F_interrupt (with error bit) if stopping due to an interrupt.
+ * F_parameter (with error bit) if a parameter is invalid.
+ *
+ * Errors (with error bit) from: f_array_lengths_increase_by().
+ * Errors (with error bit) from: f_fss_is_graph().
+ * Errors (with error bit) from: f_fss_is_space().
+ * Errors (with error bit) from: f_fss_is_zero_width().
+ * Errors (with error bit) from: f_fss_seek_to_eol().
+ * Errors (with error bit) from: f_fss_skip_past_delimit().
+ * Errors (with error bit) from: f_fss_skip_past_space().
+ * Errors (with error bit) from: f_utf_buffer_increment().
*
* @see f_array_lengths_increase_by()
* @see f_fss_is_graph()
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
- * @return
- * F_none on success.
- * F_none_eos on success after reaching the end of the buffer.
- * F_data_not_stop no data to write due start location being greater than stop location.
- * F_data_not_eos no data to write due start location being greater than or equal to buffer size.
- * F_none_stop on success after reaching stopping point.
- *
- * F_interrupt (with error bit) if stopping due to an interrupt.
- * F_none_eol (with error bit) after reaching an EOL, which is not supported by the standard.
- * F_parameter (with error bit) if a parameter is invalid.
- *
- * Errors (with error bit) from: f_fss_is_graph().
- * Errors (with error bit) from: f_fss_is_space().
- * Errors (with error bit) from: f_fss_skip_past_delimit().
- * Errors (with error bit) from: f_string_dynamic_increase().
- * Errors (with error bit) from: f_string_dynamic_increase_by().
- * Errors (with error bit) from: f_utf_buffer_increment().
+ * This alters state.status:
+ * F_none on success.
+ * F_none_eos on success after reaching the end of the buffer.
+ * F_data_not if object is empty (object.used is 0).
+ * F_data_not_eos no data to write due start location being greater than or equal to buffer size.
+ * F_data_not_stop no data to write due start location being greater than stop location.
+ * F_none_stop on success after reaching stopping point.
+ *
+ * F_interrupt (with error bit) if stopping due to an interrupt.
+ * F_none_eol (with error bit) after reaching an EOL, which is not supported by the standard.
+ * F_parameter (with error bit) if a parameter is invalid.
+ *
+ * Errors (with error bit) from: f_fss_is_graph().
+ * Errors (with error bit) from: f_fss_is_space().
+ * Errors (with error bit) from: f_fss_skip_past_delimit().
+ * Errors (with error bit) from: f_string_dynamic_increase().
+ * Errors (with error bit) from: f_string_dynamic_increase_by().
+ * Errors (with error bit) from: f_utf_buffer_increment().
*
* @see f_fss_is_graph()
* @see f_fss_is_space()
* F_fss_found_object_not on success and no object was found (start location is after character designating this is not an object).
* F_none_eos on success after reaching the end of the buffer (a valid object is not yet confirmed).
* F_none_stop on success after reaching stopping point (a valid object is not yet confirmed).
+ * F_data_not if buffer is empty (buffer.used is 0).
* F_data_not_eos no objects found after reaching the end of the buffer (essentially only comments are found).
* F_data_not_stop no data found after reaching stopping point (essentially only comments are found).
* F_end_not_group_eos if EOS was reached before the a group termination was reached.
* F_none on success.
* F_none_eos on success after reaching the end of the buffer.
* F_none_stop on success after reaching the range stop.
+ * F_data_not if object is empty (object.used is 0).
* F_data_not_stop no data to write due start location being greater than stop location.
* F_data_not_eos no data to write due start location being greater than or equal to buffer size.
*
return;
}
+ if (state->status == F_data_not) return;
+
if (found_data) {
state->status = (range->start >= buffer.used) ? F_none_eos : F_none_stop;
return;
}
- if (state->status == F_data_not_eos || state->status == F_data_not_stop) {
+ if (state->status == F_data_not || state->status == F_data_not_eos || state->status == F_data_not_stop) {
// If at least some valid object was found, then return F_none equivelents.
if (objects->used > initial_used) {
- if (state->status == F_data_not_eos) {
- state->status = F_none_eos;
- }
- else if (state->status == F_data_not_stop) {
- state->status = F_none_stop;
- }
+ state->status = (state->status == F_data_not_eos) ? F_none_eos : F_none_stop;
}
return;
fl_fss_basic_object_write(object, quote, f_fss_complete_full_e, &range, destination, state);
- if (F_status_is_error(state->status) || state->status == F_data_not_stop || state->status == F_data_not_eos) {
+ if (F_status_is_error(state->status) || state->status == F_data_not || state->status == F_data_not_stop || state->status == F_data_not_eos) {
return;
}
* F_none on success.
* F_none_eos on success after reaching the end of the buffer.
* F_none_stop on success after reaching stopping point.
+ * F_data_not if buffer is empty (buffer.used is 0).
* F_data_not_eol if there is no data to write and EOL was reached.
* F_data_not_eos no data to write due start location being greater than or equal to buffer size.
* F_data_not_stop no data to write due start location being greater than stop location.
* F_none on success.
* F_none_eos on success after reaching the end of the buffer.
* F_none_stop on success after reaching stopping point.
+ * F_data_not if object or contents are empty (either object.used or contents.used is 0).
* F_data_not_eos no data to write due start location being greater than or equal to buffer size.
* F_data_not_stop no data to write due start location being greater than stop location.
*
return;
}
+ if (state->status == F_data_not) return;
+
if (found_data) {
state->status = (range->start >= buffer.used) ? F_none_eos : F_none_stop;
}
return;
}
- if (state->status == F_data_not_eos || state->status == F_data_not_stop) {
+ if (state->status == F_data_not || state->status == F_data_not_eos || state->status == F_data_not_stop) {
// If at least some valid object was found, then return F_none equivalents.
if (objects->used > initial_used) {
- if (state->status == F_data_not_eos) {
- state->status = F_none_eos;
- }
- else if (state->status == F_data_not_stop) {
- state->status = F_none_stop;
- }
+ state->status = (state->status == F_data_not_eos) ? F_none_eos : F_none_stop;
}
return;
fl_fss_basic_list_object_write(object, f_fss_complete_full_e, &range, destination, state);
- if (F_status_is_error(state->status) || state->status == F_data_not_stop || state->status == F_data_not_eos) {
+ if (F_status_is_error(state->status) || state->status == F_data_not || state->status == F_data_not_stop || state->status == F_data_not_eos) {
return;
}
* F_none on success.
* F_none_eos on success after reaching the end of the buffer.
* F_none_stop on success after reaching stopping point.
+ * F_data_not if buffer is empty (buffer.used is 0).
* F_data_not_eos no data to write due start location being greater than or equal to buffer size.
* F_data_not_stop no data to write due start location being greater than stop location.
*
* Error bit designates an error but must be passed along with F_interrupt.
* All other statuses are ignored.
*
- * @return
- * F_none on success.
- * F_none_eos on success after reaching the end of the buffer.
- * F_none_stop on success after reaching stopping point.
- * F_data_not_eos no data to write due start location being greater than or equal to buffer size.
- * F_data_not_stop no data to write due start location being greater than stop location
+ * This alters state.status:
+ * F_none on success.
+ * F_none_eos on success after reaching the end of the buffer.
+ * F_none_stop on success after reaching stopping point.
+ * F_data_not if object or contents are empty (either object.used or contents.used is 0).
+ * F_data_not_eos no data to write due start location being greater than or equal to buffer size.
+ * F_data_not_stop no data to write due start location being greater than stop location
*
- * F_parameter (with error bit) if a parameter is invalid.
+ * F_parameter (with error bit) if a parameter is invalid.
*
- * Errors (with error bit) from: f_string_dynamic_increase().
- * Errors (with error bit) from: fl_fss_basic_list_content_write().
- * Errors (with error bit) from: fl_fss_basic_list_object_write().
+ * Errors (with error bit) from: f_string_dynamic_increase().
+ * Errors (with error bit) from: fl_fss_basic_list_content_write().
+ * Errors (with error bit) from: fl_fss_basic_list_object_write().
*
* @see f_string_dynamic_increase()
* @see fl_fss_basic_list_content_write()
return;
}
+ if (state->status == F_data_not) return;
+
if (found_data) {
state->status = (range->start >= buffer.used) ? F_none_eos : F_none_stop;
if (state->status == F_none_eos || state->status == F_none_stop) return;
- if (state->status == F_data_not_eos || state->status == F_data_not_stop) {
+ if (state->status == F_data_not || state->status == F_data_not_eos || state->status == F_data_not_stop) {
// If at least some valid object was found, then return F_none equivalents.
if (nest->depth[0].used > initial_used) {
- if (state->status == F_data_not_eos) {
- state->status = F_none_eos;
- }
- else if (state->status == F_data_not_stop) {
- state->status = F_none_stop;
- }
+ state->status = (state->status == F_data_not_eos) ? F_none_eos : F_none_stop;
}
return;
// If at least some valid object was found, then return F_none equivalents.
if (nest->depth[0].used > initial_used) {
- if (state->status == F_data_not_eos) {
- state->status = F_none_eos;
- }
- else if (state->status == F_data_not_stop) {
- state->status = F_none_stop;
- }
+ state->status = (state->status == F_data_not_eos) ? F_none_eos : F_data_not_stop;
}
return;
fl_fss_embedded_list_object_write(object, f_fss_complete_full_e, &range, destination, state);
- if (F_status_is_error(state->status) || state->status == F_data_not_stop || state->status == F_data_not_eos) {
+ if (F_status_is_error(state->status) || state->status == F_data_not || state->status == F_data_not_stop || state->status == F_data_not_eos) {
return;
}
* F_none on success (both valid object and valid content found with start location is at end of content).
* F_none_eos on success after reaching the end of the buffer (both valid object and valid content found with start location is at end of buffer).
* F_none_stop on success after reaching stopping point (both valid object and valid content found with start location is at stop point).
+ * F_data_not if buffer is empty (buffer.used is 0).
* F_data_not_eol if there is no data to write and EOL was reached.
* F_data_not_eos no data to write due start location being greater than or equal to buffer size.
* F_data_not_stop no data to write due start location being greater than stop location.
* F_none on success.
* F_none_eos on success after reaching the end of the buffer.
* F_none_stop on success after reaching stopping point.
+ * F_data_not if object or contents are empty (either object.used or contents.used is 0).
* F_data_not_eos no data to write due start location being greater than or equal to buffer size.
* F_data_not_stop no data to write due start location being greater than stop location.
*
return;
}
+ if (state->status == F_data_not) return;
+
if (found_data) {
state->status = (range->start >= buffer.used) ? F_none_eos : F_none_stop;
}
return;
}
- if (state->status == F_data_not_eos || state->status == F_data_not_stop || state->status == F_end_not_group_eos || state->status == F_end_not_group_stop) {
+ if (state->status == F_data_not || state->status == F_data_not_eos || state->status == F_data_not_stop || state->status == F_end_not_group_eos || state->status == F_end_not_group_stop) {
// If at least some valid object was found, then return F_none equivelents.
if (objects->used > initial_used) {
- if (state->status == F_data_not_eos) {
- state->status = F_none_eos;
- }
- else if (state->status == F_data_not_stop) {
- state->status = F_none_stop;
- }
+ state->status = (state->status == F_data_not_eos) ? F_none_eos : F_none_stop;
}
return;
fl_fss_extended_object_write(object, quote, f_fss_complete_full_e, &range, destination, state);
- if (F_status_is_error(state->status) || state->status == F_data_not_stop || state->status == F_data_not_eos) {
+ if (F_status_is_error(state->status) || state->status == F_data_not || state->status == F_data_not_stop || state->status == F_data_not_eos) {
return;
}
* F_none on success.
* F_none_stop on success after reaching stopping point.
* F_none_eos on success after reaching the end of the buffer.
+ * F_data_not if buffer is empty (buffer.used is 0).
* F_data_not_stop no data to write due start location being greater than stop location.
* F_data_not_eos no data to write due start location being greater than or equal to buffer size.
* F_data_not_eol if there is no data to write and EOL was reached.
* F_none on success.
* F_none_eos on success after reaching the end of the buffer.
* F_none_stop on success after reaching stopping point.
+ * F_data_not if object or contents are empty (either object.used or contents.used is 0).
* F_data_not_eos no data to write due start location being greater than or equal to buffer size.
* F_data_not_stop no data to write due start location being greater than stop location.
*
return;
}
+ if (state->status == F_data_not) return;
+
if (found_data) {
state->status = (range->start >= buffer.used) ? F_none_eos : F_none_stop;
}
return;
}
- if (state->status == F_data_not_eos || state->status == F_data_not_stop) {
+ if (state->status == F_data_not || state->status == F_data_not_eos || state->status == F_data_not_stop) {
// If at least some valid object was found, then return F_none equivalents.
if (objects->used > initial_used) {
- if (state->status == F_data_not_eos) {
- state->status = F_none_eos;
- }
- else if (state->status == F_data_not_stop) {
- state->status = F_none_stop;
- }
+ state->status = state->status == F_data_not_eos ? F_none_eos : F_none_stop;
}
return;
fl_fss_extended_list_object_write(object, f_fss_complete_full_e, &range, destination, state);
- if (F_status_is_error(state->status) || state->status == F_data_not_stop || state->status == F_data_not_eos) {
+ if (F_status_is_error(state->status) || state->status == F_data_not || state->status == F_data_not_stop || state->status == F_data_not_eos) {
return;
}
* F_none on success (both valid object and valid content found with start location is at end of content).
* F_none_eos on success after reaching the end of the buffer (both valid object and valid content found with start location is at end of buffer).
* F_none_stop on success after reaching stopping point (both valid object and valid content found with start location is at stop point).
+ * F_data_not if buffer is empty (buffer.used is 0).
* F_data_not_eol if there is no data to write and EOL was reached.
* F_data_not_eos no data to write due start location being greater than or equal to buffer size.
* F_data_not_stop no data to write due start location being greater than stop location.
* F_none on success.
* F_none_eos on success after reaching the end of the buffer.
* F_none_stop on success after reaching stopping point.
+ * F_data_not if object or contents are empty (either object.used or contents.used is 0).
* F_data_not_eos no data to write due start location being greater than or equal to buffer size.
* F_data_not_stop no data to write due start location being greater than stop location.
*
}
// Returning without a "payload" is an error.
+ if (state->status == F_data_not) {
+ state->status = F_status_set_error(F_data_not);
+
+ return;
+ }
+
if (found_data) {
state->status = F_status_set_error((range->start >= buffer.used) ? F_none_eos : F_none_stop);
}
return;
}
- if (state->status == F_data_not_eos || state->status == F_data_not_stop) {
+ if (state->status == F_data_not || state->status == F_data_not_eos || state->status == F_data_not_stop) {
// If at least some valid object was found, then return F_none equivalents.
if (objects->used > initial_used) {
// Returning without a "payload" is an error.
- if (state->status == F_data_not_eos) {
- state->status = F_status_set_error(F_none_eos);
- }
- else if (state->status == F_data_not_stop) {
- state->status = F_status_set_error(F_none_stop);
- }
+ state->status = (state->status == F_data_not_eos) ? F_status_set_error(F_none_eos) : F_status_set_error(F_none_stop);
}
else {
state->status = F_status_set_error(state->status);
fl_fss_basic_list_object_write(object, trim ? f_fss_complete_full_trim_e : f_fss_complete_full_e, &range, destination, state);
- if (F_status_is_error(state->status) || state->status == F_data_not_stop || state->status == F_data_not_eos) {
+ if (F_status_is_error(state->status) || state->status == F_data_not || state->status == F_data_not_stop || state->status == F_data_not_eos) {
return;
}
* F_none on success.
* F_none_eos on success after reaching the end of the buffer.
* F_none_stop on success after reaching stopping point.
+ * F_data_not if buffer is empty (buffer.used is 0).
* F_data_not_eos no data to write due start location being greater than or equal to buffer size.
* F_data_not_stop no data to write due start location being greater than stop location.
*
* F_none on success.
* F_none_eos on success after reaching the end of the buffer.
* F_none_stop on success after reaching stopping point.
+ * F_data_not if object or contents are empty (either object.used or contents.used is 0).
* F_data_not_eos no data to write due start location being greater than or equal to buffer size.
* F_data_not_stop no data to write due start location being greater than stop location.
*