const f_string_ranges_t except_in = f_string_ranges_t_initialize;
- return private_fl_print_trim_except_in(string, offset, length, except_at, except_in, stream);
+ return private_fl_print_trim_except_in(string, offset, offset + length, except_at, except_in, stream);
}
#endif // _di_fl_print_trim_except_
const f_string_ranges_t except_in = f_string_ranges_t_initialize;
- return private_fl_print_trim_except_in_raw(string, offset, length, except_at, except_in, stream);
+ return private_fl_print_trim_except_in_raw(string, offset, offset + length, except_at, except_in, stream);
}
#endif // _di_fl_print_trim_except_raw_
const f_string_ranges_t except_in = f_string_ranges_t_initialize;
- return private_fl_print_trim_except_in_raw_safely(string, offset, length, except_at, except_in, stream);
+ return private_fl_print_trim_except_in_raw_safely(string, offset, offset + length, except_at, except_in, stream);
}
#endif // _di_fl_print_trim_except_raw_safely_
const f_string_ranges_t except_in = f_string_ranges_t_initialize;
- return private_fl_print_trim_except_in_safely(string, offset, length, except_at, except_in, stream);
+ return private_fl_print_trim_except_in_safely(string, offset, offset + length, except_at, except_in, stream);
}
#endif // _di_fl_print_trim_except_safely_
return F_data_not;
}
- return private_fl_print_trim_except_in(string, offset, length, except_at, except_in, stream);
+ return private_fl_print_trim_except_in(string, offset, offset + length, except_at, except_in, stream);
}
#endif // _di_fl_print_trim_except_in_
return F_data_not;
}
- return private_fl_print_trim_except_in_raw(string, offset, length, except_at, except_in, stream);
+ return private_fl_print_trim_except_in_raw(string, offset, offset + length, except_at, except_in, stream);
}
#endif // _di_fl_print_trim_except_in_raw_
return F_data_not;
}
- return private_fl_print_trim_except_in_raw_safely(string, offset, length, except_at, except_in, stream);
+ return private_fl_print_trim_except_in_raw_safely(string, offset, offset + length, except_at, except_in, stream);
}
#endif // _di_fl_print_trim_except_in_raw_safely_
return F_data_not;
}
- return private_fl_print_trim_except_in_safely(string, offset, length, except_at, except_in, stream);
+ return private_fl_print_trim_except_in_safely(string, offset, offset + length, except_at, except_in, stream);
}
#endif // _di_fl_print_trim_except_in_safely_
length = buffer.used - range.start;
}
- return private_fl_print_trim_except_in(buffer.string, range.start, length, except_at, except_in, stream);
+ return private_fl_print_trim_except_in(buffer.string, range.start, range.start + length, except_at, except_in, stream);
}
#endif // _di_fl_print_trim_except_in_dynamic_partial_
length = buffer.used - range.start;
}
- return private_fl_print_trim_except_in_raw(buffer.string, range.start, length, except_at, except_in, stream);
+ return private_fl_print_trim_except_in_raw(buffer.string, range.start, range.start + length, except_at, except_in, stream);
}
#endif // _di_fl_print_trim_except_in_dynamic_partial_raw_
length = buffer.used - range.start;
}
- return private_fl_print_trim_except_in_raw_safely(buffer.string, range.start, length, except_at, except_in, stream);
+ return private_fl_print_trim_except_in_raw_safely(buffer.string, range.start, range.start + length, except_at, except_in, stream);
}
#endif // _di_fl_print_trim_except_in_dynamic_partial_raw_safely_
length = buffer.used - range.start;
}
- return private_fl_print_trim_except_in_safely(buffer.string, range.start, length, except_at, except_in, stream);
+ return private_fl_print_trim_except_in_safely(buffer.string, range.start, range.start + length, except_at, except_in, stream);
}
#endif // _di_fl_print_trim_except_in_dynamic_partial_safely_
const f_string_ranges_t except_in = f_string_ranges_t_initialize;
- return private_fl_print_trim_except_in(buffer.string, range.start, length, except, except_in, stream);
+ return private_fl_print_trim_except_in(buffer.string, range.start, range.start + length, except, except_in, stream);
}
#endif // _di_fl_print_trim_except_dynamic_partial_
const f_string_ranges_t except_in = f_string_ranges_t_initialize;
- return private_fl_print_trim_except_in_raw(buffer.string, range.start, length, except, except_in, stream);
+ return private_fl_print_trim_except_in_raw(buffer.string, range.start, range.start + length, except, except_in, stream);
}
#endif // _di_fl_print_trim_except_dynamic_partial_raw_
const f_string_ranges_t except_in = f_string_ranges_t_initialize;
- return private_fl_print_trim_except_in_raw_safely(buffer.string, range.start, length, except, except_in, stream);
+ return private_fl_print_trim_except_in_raw_safely(buffer.string, range.start, range.start + length, except, except_in, stream);
}
#endif // _di_fl_print_trim_except_dynamic_partial_raw_safely_
const f_string_ranges_t except_in = f_string_ranges_t_initialize;
- return private_fl_print_trim_except_in_safely(buffer.string, range.start, length, except, except_in, stream);
+ return private_fl_print_trim_except_in_safely(buffer.string, range.start, range.start + length, except, except_in, stream);
}
#endif // _di_fl_print_trim_except_dynamic_partial_safely_
#endif // !defined(_di_fl_print_format_) || !defined(_di_fl_print_format_convert_)
#if !defined(_di_fl_print_trim_except_) || !defined(_di_fl_print_trim_except_dynamic_) || !defined(_di_fl_print_trim_except_dynamic_partial_) || !defined(_di_fl_print_trim_except_in_) || !defined(_di_fl_print_trim_except_in_dynamic_) || !defined(_di_fl_print_trim_except_in_dynamic_partial_)
- f_status_t private_fl_print_trim_except_in(const f_string_t string, const f_array_length_t offset, const f_array_length_t length, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE * const stream) {
+ f_status_t private_fl_print_trim_except_in(const f_string_t string, const f_array_length_t offset, const f_array_length_t stop, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE * const stream) {
f_array_length_t i = offset;
f_array_length_t j = 0;
f_status_t status = F_none;
// Skip past leading whitespace.
- while (i < length) {
+ while (i < stop) {
if (!string[i]) {
++i;
continue;
}
- status = f_utf_is_whitespace(string + i, (length - i) + 1);
+ status = f_utf_is_whitespace(string + i, stop - i);
if (F_status_is_error(status)) {
if (F_status_set_fine(status) == F_maybe) {
i += macro_f_utf_byte_width(string[i]);
} // while
- while (i < length) {
+ while (i < stop) {
while (at < except_at.used && except_at.array[at] < i) {
++at;
}
}
- status = f_utf_is_whitespace(string + i, (length - i) + 1);
+ status = f_utf_is_whitespace(string + i, stop - i);
if (F_status_is_error(status)) {
if (F_status_set_fine(status) == F_maybe) {
return status;
}
- // determine if this is an end of string whitespace that needs to be trimmed.
+ // Determine if this is an end of string whitespace that needs to be trimmed.
if (status == F_true || !string[i]) {
j = i + macro_f_utf_byte_width(string[i]);
status = F_none;
- while (j < length) {
+ while (j < stop) {
if (!string[j]) {
++j;
continue;
}
- status = f_utf_is_whitespace(string + j, (length - j) + 1);
+ // @todo need to also check for combining character after this.
+ status = f_utf_is_whitespace(string + j, stop - j);
if (F_status_is_error(status)) {
if (F_status_set_fine(status) == F_maybe) {
return status;
}
- if (status == F_false && string[i]) break;
+ if (status == F_false && string[j]) break;
+
+ j += macro_f_utf_byte_width(string[j]);
} // while
- if (j == length) break;
+ if (j >= stop) break;
- // print all processed whitespace (note: control characters are not whitespace so no checks for this are needed).
+ // Print all processed whitespace (note: control characters are not whitespace so no checks for this are needed).
while (i < j) {
if (!string[i]) {
continue;
}
- if (i + macro_f_utf_byte_width(string[i]) >= length) {
+ if (macro_f_utf_byte_width(string[i]) > 1 && i + macro_f_utf_byte_width(string[i]) >= stop) {
return F_status_set_error(F_complete_not_utf_stop);
}
i += macro_f_utf_byte_width(string[i]);
} // while
- if (i >= length) break;
+ if (i >= stop) break;
if (!string[i]) {
++i;
}
}
- status = f_utf_is_valid(string + i, length - i);
+ status = f_utf_is_valid(string + i, stop - i);
if (F_status_is_error(status)) {
if (F_status_set_fine(status) == F_maybe) {
return status;
}
- if (i + macro_f_utf_byte_width(string[i]) >= length) {
+ if (i + macro_f_utf_byte_width(string[i]) >= stop) {
return F_status_set_error(F_complete_not_utf_stop);
}
#endif // !defined(_di_fl_print_trim_except_) || !defined(_di_fl_print_trim_except_dynamic_) || !defined(_di_fl_print_trim_except_dynamic_partial_) || !defined(_di_fl_print_trim_except_in_) || !defined(_di_fl_print_trim_except_in_dynamic_) || !defined(_di_fl_print_trim_except_in_dynamic_partial_)
#if !defined(_di_fl_print_trim_except_raw_) || !defined(_di_fl_print_trim_except_dynamic_raw_) || !defined(_di_fl_print_trim_except_dynamic_partial_raw_) || !defined(_di_fl_print_trim_except_in_raw_) || !defined(_di_fl_print_trim_except_in_dynamic_raw_) || !defined(_di_fl_print_trim_except_in_dynamic_partial_raw_)
- f_status_t private_fl_print_trim_except_in_raw(const f_string_t string, const f_array_length_t offset, const f_array_length_t length, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE * const stream) {
+ f_status_t private_fl_print_trim_except_in_raw(const f_string_t string, const f_array_length_t offset, const f_array_length_t stop, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE * const stream) {
f_array_length_t i = offset;
f_array_length_t j = 0;
f_status_t status = F_none;
// Skip past leading whitespace.
- while (i < length) {
+ while (i < stop) {
if (!string[i]) {
++i;
continue;
}
- status = f_utf_is_whitespace(string + i, (length - i) + 1);
+ status = f_utf_is_whitespace(string + i, stop - i);
// Consider invalid data not-whitespace.
if (F_status_is_error(status) || status == F_false) break;
i += macro_f_utf_byte_width(string[i]);
} // while
- while (i < length) {
+ while (i < stop) {
while (at < except_at.used && except_at.array[at] < i) {
++at;
}
}
- status = f_utf_is_whitespace(string + i, (length - i) + 1);
+ status = f_utf_is_whitespace(string + i, stop - i);
// Determine if this is an end of string whitespace that needs to be trimmed.
if (status == F_true || !string[i]) {
j = i + macro_f_utf_byte_width(string[i]);
status = F_none;
- while (j < length) {
+ while (j < stop) {
if (!string[j]) {
++j;
continue;
}
- status = f_utf_is_whitespace(string + j, (length - j) + 1);
+ // @todo need to also check for combining character after this.
+ status = f_utf_is_whitespace(string + j, stop - j);
- if (F_status_is_error(status) || (status == F_false && string[i])) break;
+ if (F_status_is_error(status) || (status == F_false && string[j])) break;
+
+ j += macro_f_utf_byte_width(string[j]);
} // while
- if (j == length) break;
+ if (j >= stop) break;
- // print all processed whitespace (note: control characters are not whitespace so no checks for this are needed).
+ // Print all processed whitespace (note: control characters are not whitespace so no checks for this are needed).
while (i < j) {
while (at < except_at.used && except_at.array[at] < i) {
i += macro_f_utf_byte_width(string[i]);
} // while
- if (i >= length) break;
+ if (i >= stop) break;
}
if (fwrite_unlocked(string + i, 1, macro_f_utf_byte_width(string[i]), stream) < macro_f_utf_byte_width(string[i])) {
#endif // !defined(_di_fl_print_trim_except_raw_) || !defined(_di_fl_print_trim_except_dynamic_raw_) || !defined(_di_fl_print_trim_except_dynamic_partial_raw_) || !defined(_di_fl_print_trim_except_in_raw_) || !defined(_di_fl_print_trim_except_in_dynamic_raw_) || !defined(_di_fl_print_trim_except_in_dynamic_partial_raw_)
#if !defined(_di_fl_print_trim_except_raw_safely_) || !defined(_di_fl_print_trim_except_dynamic_raw_safely_) || !defined(_di_fl_print_trim_except_dynamic_partial_raw_safely_) || !defined(_di_fl_print_trim_except_in_raw_safely_) || !defined(_di_fl_print_trim_except_in_dynamic_raw_safely_) || !defined(_di_fl_print_trim_except_in_dynamic_partial_raw_safely_)
- f_status_t private_fl_print_trim_except_in_raw_safely(const f_string_t string, const f_array_length_t offset, const f_array_length_t length, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE * const stream) {
+ f_status_t private_fl_print_trim_except_in_raw_safely(const f_string_t string, const f_array_length_t offset, const f_array_length_t stop, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE * const stream) {
f_array_length_t i = offset;
f_array_length_t j = 0;
f_status_t status = F_none;
// Skip past leading whitespace.
- while (i < length) {
+ while (i < stop) {
if (!string[i]) {
++i;
continue;
}
- status = f_utf_is_whitespace(string + i, (length - i) + 1);
+ status = f_utf_is_whitespace(string + i, stop - i);
// Invalid UTF will not be treated as whitespace.
if (F_status_is_error(status) || status == F_false) break;
i += macro_f_utf_byte_width(string[i]);
} // while
- while (i < length) {
+ while (i < stop) {
while (at < except_at.used && except_at.array[at] < i) {
++at;
}
}
- status = f_utf_is_whitespace(string + i, (length - i) + 1);
+ status = f_utf_is_whitespace(string + i, stop - i);
// Determine if this is an end of string whitespace that needs to be trimmed.
if (status == F_true || !string[i]) {
j = i + macro_f_utf_byte_width(string[i]);
status = F_none;
- while (j < length) {
+ while (j < stop) {
if (!string[j]) {
++j;
continue;
}
- status = f_utf_is_whitespace(string + j, (length - j) + 1);
+ // @todo need to also check for combining character after this.
+ status = f_utf_is_whitespace(string + j, stop - j);
if (F_status_is_error(status) || (status == F_false && string[i])) break;
+
+ j += macro_f_utf_byte_width(string[j]);
} // while
- if (j == length || status == F_true) break;
+ if (j >= stop || status == F_true) break;
// Print all processed whitespace (note: control characters are not whitespace so no checks for this are needed).
while (i < j) {
continue;
}
- if (i + macro_f_utf_byte_width(string[i]) >= length) {
+ if (i + macro_f_utf_byte_width(string[i]) >= stop) {
if (fwrite_unlocked(f_print_sequence_unknown_s.string, 1, f_print_sequence_unknown_s.used, stream) < f_print_sequence_unknown_s.used) {
return F_status_set_error(F_output);
}
- i = length;
+ i = stop;
status = F_none;
break;
continue;
}
- status = f_utf_is_valid(string + i, length - i);
+ status = f_utf_is_valid(string + i, stop - i);
if (status == F_true) {
if (fwrite_unlocked(string + i, 1, macro_f_utf_byte_width(string[i]), stream) < macro_f_utf_byte_width(string[i])) {
i += macro_f_utf_byte_width(string[i]);
} // while
- if (i >= length) break;
+ if (i >= stop) break;
}
- status = f_utf_is_valid(string + i, length - i);
+ status = f_utf_is_valid(string + i, stop - i);
if (F_status_is_error(status)) {
if (F_status_set_fine(status) == F_maybe) {
return status;
}
- if (status == F_false || i + macro_f_utf_byte_width(string[i]) >= length) {
+ if (status == F_false || i + macro_f_utf_byte_width(string[i]) >= stop) {
if (fwrite_unlocked(f_print_sequence_unknown_s.string, 1, f_print_sequence_unknown_s.used, stream) < f_print_sequence_unknown_s.used) {
return F_status_set_error(F_output);
}
i += macro_f_utf_byte_width(string[i]);
}
else {
- i = length;
+ i = stop;
}
continue;
#endif // !defined(_di_fl_print_trim_except_raw_safely_) || !defined(_di_fl_print_trim_except_dynamic_raw_safely_) || !defined(_di_fl_print_trim_except_dynamic_partial_raw_safely_) || !defined(_di_fl_print_trim_except_in_raw_safely_) || !defined(_di_fl_print_trim_except_in_dynamic_raw_safely_) || !defined(_di_fl_print_trim_except_in_dynamic_partial_raw_safely_)
#if !defined(_di_fl_print_trim_except_safely_) || !defined(_di_fl_print_trim_except_dynamic_safely_) || !defined(_di_fl_print_trim_except_dynamic_partial_safely_) || !defined(_di_fl_print_trim_except_in_safely_) || !defined(_di_fl_print_trim_except_in_dynamic_safely_) || !defined(_di_fl_print_trim_except_in_dynamic_partial_safely_)
- f_status_t private_fl_print_trim_except_in_safely(const f_string_t string, const f_array_length_t offset, const f_array_length_t length, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE * const stream) {
+ f_status_t private_fl_print_trim_except_in_safely(const f_string_t string, const f_array_length_t offset, const f_array_length_t stop, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE * const stream) {
f_array_length_t i = offset;
f_array_length_t j = 0;
f_status_t status = F_none;
// Skip past leading whitespace.
- while (i < length) {
+ while (i < stop) {
if (!string[i]) {
++i;
continue;
}
- status = f_utf_is_whitespace(string + i, (length - i) + 1);
+ status = f_utf_is_whitespace(string + i, stop - i);
// Invalid UTF will not be treated as whitespace.
if (F_status_is_error(status) || status == F_false) break;
i += macro_f_utf_byte_width(string[i]);
} // while
- while (i < length) {
+ while (i < stop) {
while (at < except_at.used && except_at.array[at] < i) {
++at;
}
}
- status = f_utf_is_whitespace(string + i, (length - i) + 1);
+ status = f_utf_is_whitespace(string + i, stop - i);
// Determine if this is an end of string whitespace that needs to be trimmed.
if (status == F_true || !string[i]) {
j = i + macro_f_utf_byte_width(string[i]);
status = F_none;
- while (j < length) {
+ while (j < stop) {
if (!string[j]) {
++j;
continue;
}
- status = f_utf_is_whitespace(string + j, (length - j) + 1);
+ // @todo need to also check for combining character after this.
+ status = f_utf_is_whitespace(string + j, stop - j);
if (F_status_is_error(status) || (status == F_false && string[i])) break;
} // while
- if (j == length || status == F_true || !string[i]) break;
+ if (j == stop || status == F_true || !string[i]) break;
// Print all processed whitespace (note: control characters are not whitespace so no checks for this are needed).
while (i < j) {
continue;
}
- if (i + macro_f_utf_byte_width(string[i]) >= length) {
+ if (i + macro_f_utf_byte_width(string[i]) >= stop) {
if (fwrite_unlocked(f_print_sequence_unknown_s.string, 1, f_print_sequence_unknown_s.used, stream) < f_print_sequence_unknown_s.used) {
return F_status_set_error(F_output);
}
- i = length;
+ i = stop;
status = F_none;
break;
continue;
}
- status = f_utf_is_valid(string + i, length - i);
+ status = f_utf_is_valid(string + i, stop - i);
if (status == F_true) {
if (fwrite_unlocked(string + i, 1, macro_f_utf_byte_width(string[i]), stream) < macro_f_utf_byte_width(string[i])) {
i += macro_f_utf_byte_width(string[i]);
} // while
- if (i >= length) break;
+ if (i >= stop) break;
}
- status = f_utf_is_valid(string + i, length - i);
+ status = f_utf_is_valid(string + i, stop - i);
if (F_status_is_error(status)) {
if (F_status_set_fine(status) == F_maybe) {
return status;
}
- if (status == F_false || i + macro_f_utf_byte_width(string[i]) >= length) {
+ if (status == F_false || i + macro_f_utf_byte_width(string[i]) >= stop) {
if (fwrite_unlocked(f_print_sequence_unknown_s.string, 1, f_print_sequence_unknown_s.used, stream) < f_print_sequence_unknown_s.used) {
return F_status_set_error(F_output);
}
i += macro_f_utf_byte_width(string[i]);
}
else {
- i = length;
+ i = stop;
}
continue;
continue;
}
- status = f_utf_is_whitespace(string + i, (length - i) + 1);
+ status = f_utf_is_whitespace(string + i, length - i);
if (F_status_is_error(status)) {
if (F_status_set_fine(status) == F_maybe) {
while (i < length) {
- status = f_utf_is_whitespace(string + i, (length - i) + 1);
+ status = f_utf_is_whitespace(string + i, length - i);
if (F_status_is_error(status)) {
if (F_status_set_fine(status) == F_maybe) {
continue;
}
- status = f_utf_is_whitespace(string + j, (length - j) + 1);
+ // @todo need to also check for combining character after this.
+ status = f_utf_is_whitespace(string + j, length - j);
if (F_status_is_error(status)) {
if (F_status_set_fine(status) == F_maybe) {
continue;
}
- status = f_utf_is_whitespace(string + i, (length - i) + 1);
+ status = f_utf_is_whitespace(string + i, length - i);
// Consider invalid data not-whitespace.
if (F_status_is_error(status) || status == F_false) break;
while (i < length) {
- status = f_utf_is_whitespace(string + i, (length - i) + 1);
+ status = f_utf_is_whitespace(string + i, length - i);
// Determine if this is an end of string whitespace that needs to be trimmed.
if (status == F_true || !string[i]) {
continue;
}
- status = f_utf_is_whitespace(string + j, (length - j) + 1);
+ // @todo need to also check for combining character after this.
+ status = f_utf_is_whitespace(string + j, length - j);
if (F_status_is_error(status) || (status == F_false && string[i])) break;
} // while
continue;
}
- status = f_utf_is_whitespace(string + i, (length - i) + 1);
+ status = f_utf_is_whitespace(string + i, length - i);
// Invalid UTF will not be treated as whitespace.
if (F_status_is_error(status) || status == F_false) break;
while (i < length) {
- status = f_utf_is_whitespace(string + i, (length - i) + 1);
+ status = f_utf_is_whitespace(string + i, length - i);
// Determine if this is an end of string whitespace that needs to be trimmed.
if (status == F_true || !string[i]) {
continue;
}
- status = f_utf_is_whitespace(string + j, (length - j) + 1);
+ status = f_utf_is_whitespace(string + j, length - j);
if (F_status_is_error(status) || (status == F_false && string[i])) break;
} // while
continue;
}
- status = f_utf_is_whitespace(string + i, (length - i) + 1);
+ status = f_utf_is_whitespace(string + i, length - i);
// Invalid UTF will not be treated as whitespace.
if (F_status_is_error(status) || status == F_false) break;
while (i < length) {
- status = f_utf_is_whitespace(string + i, (length - i) + 1);
+ status = f_utf_is_whitespace(string + i, length - i);
// Determine if this is an end of string whitespace that needs to be trimmed.
if (status == F_true || !string[i]) {
continue;
}
- status = f_utf_is_whitespace(string + j, (length - j) + 1);
+ // @todo need to also check for combining character after this.
+ status = f_utf_is_whitespace(string + j, length - j);
if (F_status_is_error(status) || (status == F_false && string[i])) break;
} // while
* The string to output.
* @param offset
* The inclusive start point to start printing.
- * @param length
- * The total number of characters to print.
+ * @param stop
+ * The exclusive stop point to stop printing.
* @param except_at
* An array of locations within the given string to not print.
* The array of locations is required/assumed to be in linear order.
* @see fl_print_trim_except_in_dynamic_partial()
*/
#if !defined(_di_fl_print_trim_except_) || !defined(_di_fl_print_trim_except_dynamic_) || !defined(_di_fl_print_trim_except_dynamic_partial_) || !defined(_di_fl_print_trim_except_in_) || !defined(_di_fl_print_trim_except_in_dynamic_) || !defined(_di_fl_print_trim_except_in_dynamic_partial_)
- extern f_status_t private_fl_print_trim_except_in(const f_string_t string, const f_array_length_t offset, const f_array_length_t length, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE * const stream) F_attribute_visibility_internal_d;
+ extern f_status_t private_fl_print_trim_except_in(const f_string_t string, const f_array_length_t offset, const f_array_length_t stop, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE * const stream) F_attribute_visibility_internal_d;
#endif // !defined(_di_fl_print_trim_except_) || !defined(_di_fl_print_trim_except_dynamic_) || !defined(_di_fl_print_trim_except_dynamic_partial_) || !defined(_di_fl_print_trim_except_in_) || !defined(_di_fl_print_trim_except_in_dynamic_) || !defined(_di_fl_print_trim_except_in_dynamic_partial_)
/**
* The string to output.
* @param offset
* The inclusive start point to start printing.
- * @param length
- * The total number of characters to print.
+ * @param stop
+ * The exclusive stop point to stop printing.
* @param except_at
* An array of locations within the given string to not print.
* The array of locations is required/assumed to be in linear order.
* @see fl_print_trim_except_in_dynamic_partial_raw()
*/
#if !defined(_di_fl_print_trim_except_raw_) || !defined(_di_fl_print_trim_except_dynamic_raw_) || !defined(_di_fl_print_trim_except_dynamic_partial_raw_) || !defined(_di_fl_print_trim_except_in_raw_) || !defined(_di_fl_print_trim_except_in_dynamic_raw_) || !defined(_di_fl_print_trim_except_in_dynamic_partial_raw_)
- extern f_status_t private_fl_print_trim_except_in_raw(const f_string_t string, const f_array_length_t offset, const f_array_length_t length, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE * const stream) F_attribute_visibility_internal_d;
+ extern f_status_t private_fl_print_trim_except_in_raw(const f_string_t string, const f_array_length_t offset, const f_array_length_t stop, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE * const stream) F_attribute_visibility_internal_d;
#endif // !defined(_di_fl_print_trim_except_raw_) || !defined(_di_fl_print_trim_except_dynamic_raw_) || !defined(_di_fl_print_trim_except_dynamic_partial_raw_) || !defined(_di_fl_print_trim_except_in_raw_) || !defined(_di_fl_print_trim_except_in_dynamic_raw_) || !defined(_di_fl_print_trim_except_in_dynamic_partial_raw_)
/**
* The string to output.
* @param offset
* The inclusive start point to start printing.
- * @param length
- * The total number of characters to print.
+ * @param stop
+ * The exclusive stop point to stop printing.
* @param except_at
* An array of locations within the given string to not print.
* The array of locations is required/assumed to be in linear order.
* @see fl_print_trim_except_in_dynamic_partial_raw_safely()
*/
#if !defined(_di_fl_print_trim_except_raw_safely_) || !defined(_di_fl_print_trim_except_dynamic_raw_safely_) || !defined(_di_fl_print_trim_except_dynamic_partial_raw_safely_) || !defined(_di_fl_print_trim_except_in_raw_safely_) || !defined(_di_fl_print_trim_except_in_dynamic_raw_safely_) || !defined(_di_fl_print_trim_except_in_dynamic_partial_raw_safely_)
- extern f_status_t private_fl_print_trim_except_in_raw_safely(const f_string_t string, const f_array_length_t offset, const f_array_length_t length, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE * const stream) F_attribute_visibility_internal_d;
+ extern f_status_t private_fl_print_trim_except_in_raw_safely(const f_string_t string, const f_array_length_t offset, const f_array_length_t stop, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE * const stream) F_attribute_visibility_internal_d;
#endif // !defined(_di_fl_print_trim_except_raw_safely_) || !defined(_di_fl_print_trim_except_dynamic_raw_safely_) || !defined(_di_fl_print_trim_except_dynamic_partial_raw_safely_) || !defined(_di_fl_print_trim_except_in_raw_safely_) || !defined(_di_fl_print_trim_except_in_dynamic_raw_safely_) || !defined(_di_fl_print_trim_except_in_dynamic_partial_raw_safely_)
/**
* The string to output.
* @param offset
* The inclusive start point to start printing.
- * @param length
- * The total number of characters to print.
+ * @param stop
+ * The exclusive stop point to stop printing.
* @param except_at
* An array of locations within the given string to not print.
* The array of locations is required/assumed to be in linear order.
* @see fl_print_trim_except_in_dynamic_partial_safely()
*/
#if !defined(_di_fl_print_trim_except_safely_) || !defined(_di_fl_print_trim_except_dynamic_safely_) || !defined(_di_fl_print_trim_except_dynamic_partial_safely_) || !defined(_di_fl_print_trim_except_in_safely_) || !defined(_di_fl_print_trim_except_in_dynamic_safely_) || !defined(_di_fl_print_trim_except_in_dynamic_partial_safely_)
- extern f_status_t private_fl_print_trim_except_in_safely(const f_string_t string, const f_array_length_t offset, const f_array_length_t length, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE * const stream) F_attribute_visibility_internal_d;
+ extern f_status_t private_fl_print_trim_except_in_safely(const f_string_t string, const f_array_length_t offset, const f_array_length_t stop, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE * const stream) F_attribute_visibility_internal_d;
#endif // !defined(_di_fl_print_trim_except_safely_) || !defined(_di_fl_print_trim_except_dynamic_safely_) || !defined(_di_fl_print_trim_except_dynamic_partial_safely_) || !defined(_di_fl_print_trim_except_in_safely_) || !defined(_di_fl_print_trim_except_in_dynamic_safely_) || !defined(_di_fl_print_trim_except_in_dynamic_partial_safely_)
/**