f_return_status f_iki_read(f_string_static_t *buffer, f_string_range_t *range, f_iki_variable_t *variable, f_iki_vocabulary_t *vocabulary, f_iki_content_t *content) {
#ifndef _di_level_0_parameter_checking_
if (!buffer) return F_status_set_error(F_parameter);
- if (!buffer->used) return F_status_set_error(F_parameter);
if (!range) return F_status_set_error(F_parameter);
if (!variable) return F_status_set_error(F_parameter);
if (!vocabulary) return F_status_set_error(F_parameter);
if (!content) return F_status_set_error(F_parameter);
- if (range->start > range->stop) return F_status_set_error(F_parameter);
- if (range->start >= buffer->used) return F_status_set_error(F_parameter);
#endif // _di_level_0_parameter_checking_
+ if (!buffer->used) {
+ return F_data_not;
+ }
+
+ if (range->start > range->stop) {
+ return F_data_not_stop;
+ }
+
+ if (range->start >= buffer->used) {
+ return F_data_not_eos;
+ }
+
f_status_t status = F_none;
f_string_length_t width_max = 0;
* F_none on success and an IKI vocabulary name was found.
* F_none_eos on success and an IKI vocabulary name was found and end of string was reached.
* F_none_stop on success and an IKI vocabulary name was found and stop point was reached.
- * F_data_not_eos on success and EOS was reached, but there were no IKI vocabularie names found.
- * F_data_not_stop on success and stop point was reached, but there were no IKI vocabularie names found.
+ * F_data_not on success, but there were no IKI vocabulary names found.
+ * F_data_not_eos on success and EOS was reached, but there were no IKI vocabulary names found.
+ * F_data_not_stop on success and stop point was reached, but there were no IKI vocabulary names found.
* F_memory_reallocation (with error bit) on memory reallocation error.
* F_parameter (with error bit) if a parameter is invalid.
* F_string_too_large (with error bit) if a string length is too large to store in the buffer.