At some point in time the intended behavior changed from using the literal quote character to an enumeration representing the quote character on FSS read calls.
This transition is incomplete and broken.
Finish the transition, passing the enumeration representation rather than the literal character.
Remove an unnecessary initialization on the quote because the private function being called also initializes the variable.
Relocate the f_uint8s_increase() call to be after changing the error status to ensure that the quotes array is properly incremented.
Update the documentation comments to better clarify this behavior in regards to the enumeration.
There are several FSS read functions that are not handling backticks properly.
The backticks should now be fully and properly processed on read.
* FSS-specific types.
*/
#ifndef _di_f_fss_types_t_
- #define F_fss_brace_close_s F_string_ascii_brace_close_s
- #define F_fss_brace_open_s F_string_ascii_brace_open_s
- #define F_fss_colon_s F_string_ascii_colon_s
- #define F_fss_minus_s F_string_ascii_minus_s
- #define F_fss_f_s F_string_ascii_f_s
- #define F_fss_pound_s F_string_ascii_pound_s
- #define F_fss_quote_double_s F_string_ascii_quote_double_s
- #define F_fss_quote_single_s F_string_ascii_quote_single_s
- #define F_fss_s_s F_string_ascii_s_s
- #define F_fss_slash_s F_string_ascii_slash_backward_s
- #define F_fss_space_s F_string_ascii_space_s
- #define F_fss_underscore_s F_string_ascii_underscore_s
-
- #define F_fss_brace_close_s_length F_string_ascii_brace_close_s_length
- #define F_fss_brace_open_s_length F_string_ascii_brace_open_s_length
- #define F_fss_colon_s_length F_string_ascii_colon_s_length
- #define F_fss_minus_s_length F_string_ascii_minus_s_length
- #define F_fss_f_s_length F_string_ascii_f_s_length
- #define F_fss_pound_s_length F_string_ascii_pound_s_length
- #define F_fss_quote_double_s_length F_string_ascii_quote_double_s_length
- #define F_fss_quote_single_s_length F_string_ascii_quote_single_s_length
- #define F_fss_s_s_length F_string_ascii_s_s_length
- #define F_fss_slash_s_length F_string_ascii_slash_backward_s_length
- #define F_fss_space_s_length F_string_ascii_space_s_length
- #define F_fss_underscore_s_length F_string_ascii_underscore_s_length
-
- #define f_fss_brace_close_s f_string_ascii_brace_close_s
- #define f_fss_brace_open_s f_string_ascii_brace_open_s
- #define f_fss_colon_s f_string_ascii_colon_s
- #define f_fss_minus_s f_string_ascii_minus_s
- #define f_fss_f_s f_string_ascii_f_s
- #define f_fss_pound_s f_string_ascii_pound_s
- #define f_fss_quote_double_s f_string_ascii_quote_double_s
- #define f_fss_quote_single_s f_string_ascii_quote_single_s
- #define f_fss_s_s f_string_ascii_s_s
- #define f_fss_slash_s f_string_ascii_slash_backward_s
- #define f_fss_space_s f_string_ascii_space_s
- #define f_fss_underscore_s f_string_ascii_underscore_s
+ #define F_fss_brace_close_s F_string_ascii_brace_close_s
+ #define F_fss_brace_open_s F_string_ascii_brace_open_s
+ #define F_fss_colon_s F_string_ascii_colon_s
+ #define F_fss_minus_s F_string_ascii_minus_s
+ #define F_fss_f_s F_string_ascii_f_s
+ #define F_fss_pound_s F_string_ascii_pound_s
+ #define F_fss_quote_backtick_s F_string_ascii_grave_s
+ #define F_fss_quote_double_s F_string_ascii_quote_double_s
+ #define F_fss_quote_single_s F_string_ascii_quote_single_s
+ #define F_fss_s_s F_string_ascii_s_s
+ #define F_fss_slash_s F_string_ascii_slash_backward_s
+ #define F_fss_space_s F_string_ascii_space_s
+ #define F_fss_underscore_s F_string_ascii_underscore_s
+
+ #define F_fss_brace_close_s_length F_string_ascii_brace_close_s_length
+ #define F_fss_brace_open_s_length F_string_ascii_brace_open_s_length
+ #define F_fss_colon_s_length F_string_ascii_colon_s_length
+ #define F_fss_minus_s_length F_string_ascii_minus_s_length
+ #define F_fss_f_s_length F_string_ascii_f_s_length
+ #define F_fss_pound_s_length F_string_ascii_pound_s_length
+ #define F_fss_quote_backtick_s_length F_string_ascii_grave_s_length
+ #define F_fss_quote_double_s_length F_string_ascii_quote_double_s_length
+ #define F_fss_quote_single_s_length F_string_ascii_quote_single_s_length
+ #define F_fss_s_s_length F_string_ascii_s_s_length
+ #define F_fss_slash_s_length F_string_ascii_slash_backward_s_length
+ #define F_fss_space_s_length F_string_ascii_space_s_length
+ #define F_fss_underscore_s_length F_string_ascii_underscore_s_length
+
+ #define f_fss_brace_close_s f_string_ascii_brace_close_s
+ #define f_fss_brace_open_s f_string_ascii_brace_open_s
+ #define f_fss_colon_s f_string_ascii_colon_s
+ #define f_fss_minus_s f_string_ascii_minus_s
+ #define f_fss_f_s f_string_ascii_f_s
+ #define f_fss_pound_s f_string_ascii_pound_s
+ #define f_fss_quote_backtick_s f_string_ascii_grave_s
+ #define f_fss_quote_double_s f_string_ascii_quote_double_s
+ #define f_fss_quote_single_s f_string_ascii_quote_single_s
+ #define f_fss_s_s f_string_ascii_s_s
+ #define f_fss_slash_s f_string_ascii_slash_backward_s
+ #define f_fss_space_s f_string_ascii_space_s
+ #define f_fss_underscore_s f_string_ascii_underscore_s
#define f_fss_comment_s f_fss_pound_s
#define f_fss_eol_s f_string_eol_s
* FSS-specific delimiters.
*/
#ifndef _di_f_fss_delimiters_
- #define F_fss_delimit_placeholder_s F_string_placeholder_s
- #define F_fss_delimit_quote_single_s F_fss_quote_single_s
- #define F_fss_delimit_quote_double_s F_fss_quote_double_s
- #define F_fss_delimit_slash_s F_fss_slash_s
-
- #define F_fss_delimit_placeholder_s_length F_string_placeholder_s_length
- #define F_fss_delimit_quote_single_s_length F_fss_quote_single_s_length
- #define F_fss_delimit_quote_double_s_length F_fss_quote_double_s_length
- #define F_fss_delimit_slash_s_length F_fss_slash_s_length
-
- #define f_fss_delimit_placeholder_s f_string_placeholder_s
- #define f_fss_delimit_quote_single_s f_fss_quote_single_s
- #define f_fss_delimit_quote_double_s f_fss_quote_double_s
- #define f_fss_delimit_slash_s f_fss_slash_s
+ #define F_fss_delimit_placeholder_s F_string_placeholder_s
+ #define F_fss_delimit_quote_backtick_s F_fss_quote_backtick_s
+ #define F_fss_delimit_quote_double_s F_fss_quote_double_s
+ #define F_fss_delimit_quote_single_s F_fss_quote_single_s
+ #define F_fss_delimit_slash_s F_fss_slash_s
+
+ #define F_fss_delimit_placeholder_s_length F_string_placeholder_s_length
+ #define F_fss_delimit_quote_backtick_s_length F_fss_quote_backtick_s_length
+ #define F_fss_delimit_quote_double_s_length F_fss_quote_double_s_length
+ #define F_fss_delimit_quote_single_s_length F_fss_quote_single_s_length
+ #define F_fss_delimit_slash_s_length F_fss_slash_s_length
+
+ #define f_fss_delimit_placeholder_s f_string_placeholder_s
+ #define f_fss_delimit_quote_backtick_s f_fss_quote_backtick_s
+ #define f_fss_delimit_quote_double_s f_fss_quote_double_s
+ #define f_fss_delimit_quote_single_s f_fss_quote_single_s
+ #define f_fss_delimit_slash_s f_fss_slash_s
#endif //_di_f_fss_delimiters_
/**
* Types for FSS quote.
*
* f_fss_quote_type_*:
- * - none: Not a quote.
- * - single: Quote type is a single quote.
- * - double: Quote type is a double quote.
+ * - none: Not a quote.
+ * - single: Quote type is a single quote.
+ * - double: Quote type is a double quote.
+ * - backtick: Quote type is a backtick.
*/
#ifndef _di_f_fss_quote_type_
enum {
f_fss_quote_type_none_e = 0,
f_fss_quote_type_single_e,
f_fss_quote_type_double_e,
+ f_fss_quote_type_backtick_e,
};
#endif // _di_f_fss_quote_type_
* @param found
* A location where a valid object was found.
* @param quote
- * This will store whether or not this object is quote and what quote is in use.
+ * This will store the quote type representing the character to use (from the f_fss_quote_type_*_e).
* Set pointer address to 0 to not use.
* @param delimits
* A delimits array representing where delimits exist within the buffer.
f_string_range_t content_partial = f_string_range_t_initialize;
- quote = f_fss_quote_type_none_e;
-
status = private_fl_fss_basic_read(buffer, F_false, state, range, &content_partial, "e, delimits);
if (status == F_fss_found_object || F_status_set_fine(status) == F_fss_found_object_content_not) {
status_allocate = f_string_ranges_increase(state.step_small, found);
- if (F_status_is_error_not(status_allocate) && quotes) {
- status_allocate = f_uint8s_increase(state.step_small, quotes);
- }
-
// The private function sets the error bit on unterminated quoted Object.
if (status == F_status_set_error(F_fss_found_object_content_not)) {
status = F_fss_found_object_content_not;
}
+ if (F_status_is_error_not(status_allocate) && quotes) {
+ status_allocate = f_uint8s_increase(state.step_small, quotes);
+ }
+
if (F_status_is_error(status_allocate)) {
delimits->used = delimits_used;
found->array[found->used++] = content_partial;
if (quotes) {
- if (quote == f_fss_quote_type_double_e) {
- quotes->array[quotes->used] = f_string_ascii_quote_double_s.string[0];
- }
- else if (quote == f_fss_quote_type_single_e) {
- quotes->array[quotes->used] = f_string_ascii_quote_single_s.string[0];
- }
- else {
- quotes->array[quotes->used] = 0;
- }
-
- quotes->used = found->used;
+ quotes->array[quotes->used++] = quote;
}
content_found = 1;
else if (F_status_is_error(status)) {
delimits->used = delimits_used;
+ if (quotes) {
+ quotes->used = quotes_used;
+ }
+
return status;
}
} // while
* @param found
* A set of all locations where a valid content was found.
* @param quotes
- * An array of quotes designating whether or not content is quoted and what quote is in use.
+ * This will store the quote types representing the character to use (from the f_fss_quote_type_*_e).
* Set pointer address to 0 to not use.
* @param delimits
* A delimits array representing where delimits exist within the buffer.
* @param found
* A location where a valid object was found.
* @param quoted
- * This will store whether or not this object is quoted and what quote is in use.
+ * This will store the quote type representing the character to use (from the f_fss_quote_type_*_e).
* Set pointer address to 0 to not use.
* @param delimits
* A delimits array representing where delimits exist within the buffer.
return F_none_stop;
}
- if (buffer.string[range->start] == f_fss_delimit_quote_single_s.string[0] || buffer.string[range->start] == f_fss_delimit_quote_double_s.string[0] || (object_as && buffer.string[range->start] == f_fss_comment_s.string[0])) {
+ if (buffer.string[range->start] == f_fss_quote_single_s.string[0] || buffer.string[range->start] == f_fss_quote_double_s.string[0] || buffer.string[range->start] == f_fss_quote_backtick_s.string[0] || (object_as && buffer.string[range->start] == f_fss_comment_s.string[0])) {
// Only the first slash before a quote needs to be escaped (or not) as once there is a slash before a quote, this cannot ever be a quote object.
// This simplifies the number of slashes needed.
if (F_status_is_error(status)) return status;
}
}
- else if (buffer.string[range->start] == f_fss_delimit_quote_single_s.string[0] || buffer.string[range->start] == f_fss_delimit_quote_double_s.string[0]) {
+ else if (buffer.string[range->start] == f_fss_quote_single_s.string[0] || buffer.string[range->start] == f_fss_delimit_quote_double_s.string[0] || buffer.string[range->start] == f_fss_quote_backtick_s.string[0]) {
quote_found = buffer.string[range->start];
status = f_utf_buffer_increment(buffer, range, 1);
if (status == F_true) {
if (quote) {
- if (quote_found == f_fss_delimit_quote_single_s.string[0]) {
+ if (quote_found == f_fss_quote_double_s.string[0]) {
+ *quote = f_fss_quote_type_double_e;
+ }
+ else if (quote_found == f_fss_quote_single_s.string[0]) {
*quote = f_fss_quote_type_single_e;
}
- else if (quote_found == f_fss_delimit_quote_double_s.string[0]) {
- *quote = f_fss_quote_type_double_e;
+ else if (quote_found == f_fss_quote_backtick_s.string[0]) {
+ *quote = f_fss_quote_type_backtick_e;
}
else {
*quote = f_fss_quote_type_none_e;
if (status == F_true) {
if (quote) {
- if (quote_found == f_fss_delimit_quote_single_s.string[0]) {
+ if (quote_found == f_fss_quote_double_s.string[0]) {
+ *quote = f_fss_quote_type_double_e;
+ }
+ else if (quote_found == f_fss_quote_single_s.string[0]) {
*quote = f_fss_quote_type_single_e;
}
- else if (quote_found == f_fss_delimit_quote_double_s.string[0]) {
- *quote = f_fss_quote_type_double_e;
+ else if (quote_found == f_fss_quote_backtick_s.string[0]) {
+ *quote = f_fss_quote_type_backtick_e;
}
else {
*quote = f_fss_quote_type_none_e;
* @param found
* A set of all locations where a valid object was found.
* @param quote
- * This will store whether or not this object is quote and what quote is in use.
+ * This will store the quote type representing the character to use (from the f_fss_quote_type_*_e).
* Set pointer address to 0 to not use.
* @param delimits
* An array of delimits detected during processing.
* @param contents
* This will be populated with all valid contents found.
* @param objects_quoted
- * (optional) An array mapped to each object in objects representing the quote discovered, if any.
+ * (optional) An array mapped to each object in objects representing the quote type discovered (from the f_fss_quote_type_*_e), if any.
* Set the pointer address to 0 to disable.
* @param objects_delimits
* An array of delimits for objects detected during processing.
* @param contents
* This will be populated with all valid contents found.
* @param objects_quoted
- * (optional) An array mapped to each object in objects representing the quote discovered, if any.
+ * (optional) An array mapped to each object in objects representing the quote type discovered (from the f_fss_quote_type_*_e), if any.
* Set the pointer address to 0 to disable.
* @param contents_quoted
- * (optional) An array mapped to each content in contents representing the quote discovered, if any.
+ * (optional) An array mapped to each content in objects representing the quote type discovered (from the f_fss_quote_type_*_e), if any.
* Set the pointer address to 0 to disable.
* @param objects_delimits
* An array of delimits for objects detected during processing.
if (data->option & fss_basic_read_data_option_trim_d) {
if (data->option & fss_basic_read_data_option_original_d) {
if (data->quotes.array[at]) {
- f_print_dynamic_raw(data->quotes.array[at] == f_fss_quote_type_single_e ? f_fss_quote_single_s : f_fss_quote_double_s, main->output.to.stream);
+ f_print_dynamic_raw(
+ data->quotes.array[at] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s
+ : data->quotes.array[at] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s
+ : f_fss_quote_backtick_s,
+ main->output.to.stream
+ );
}
fl_print_trim_dynamic_partial(data->buffer, data->objects.array[at], main->output.to.stream);
if (data->quotes.array[at]) {
- f_print_dynamic_raw(data->quotes.array[at] == f_fss_quote_type_single_e ? f_fss_quote_single_s : f_fss_quote_double_s, main->output.to.stream);
+ f_print_dynamic_raw(
+ data->quotes.array[at] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s
+ : data->quotes.array[at] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s
+ : f_fss_quote_backtick_s,
+ main->output.to.stream
+ );
}
}
else {
else {
if (data->option & fss_basic_read_data_option_original_d) {
if (data->quotes.array[at]) {
- f_print_dynamic_raw(data->quotes.array[at] == f_fss_quote_type_single_e ? f_fss_quote_single_s : f_fss_quote_double_s, main->output.to.stream);
+ f_print_dynamic_raw(
+ data->quotes.array[at] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s
+ : data->quotes.array[at] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s
+ : f_fss_quote_backtick_s,
+ main->output.to.stream
+ );
}
f_print_dynamic_partial(data->buffer, data->objects.array[at], main->output.to.stream);
if (data->quotes.array[at]) {
- f_print_dynamic_raw(data->quotes.array[at] == f_fss_quote_type_single_e ? f_fss_quote_single_s : f_fss_quote_double_s, main->output.to.stream);
+ f_print_dynamic_raw(
+ data->quotes.array[at] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s
+ : data->quotes.array[at] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s
+ : f_fss_quote_backtick_s,
+ main->output.to.stream
+ );
}
}
else {
if (data->option & fss_extended_read_data_option_object_d) {
if (data->option & fss_extended_read_data_option_trim_d) {
if ((data->option & fss_extended_read_data_option_original_d) && data->quotes_object.array[at]) {
- f_print_dynamic_raw(data->quotes_object.array[at] == f_fss_quote_type_single_e ? f_fss_quote_single_s : f_fss_quote_double_s, main->output.to.stream);
+ f_print_dynamic_raw(
+ data->quotes_object.array[at] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s
+ : data->quotes_object.array[at] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s
+ : f_fss_quote_backtick_s,
+ main->output.to.stream
+ );
}
fl_print_trim_except_dynamic_partial(data->buffer, data->objects.array[at], delimits_object, main->output.to.stream);
if ((data->option & fss_extended_read_data_option_original_d) && data->quotes_object.array[at]) {
- f_print_dynamic_raw(data->quotes_object.array[at] == f_fss_quote_type_single_e ? f_fss_quote_single_s : f_fss_quote_double_s, main->output.to.stream);
+ f_print_dynamic_raw(
+ data->quotes_object.array[at] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s
+ : data->quotes_object.array[at] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s
+ : f_fss_quote_backtick_s,
+ main->output.to.stream
+ );
}
}
else {
if ((data->option & fss_extended_read_data_option_original_d) && data->quotes_object.array[at]) {
- f_print_dynamic_raw(data->quotes_object.array[at] == f_fss_quote_type_single_e ? f_fss_quote_single_s : f_fss_quote_double_s, main->output.to.stream);
+ f_print_dynamic_raw(
+ data->quotes_object.array[at] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s
+ : data->quotes_object.array[at] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s
+ : f_fss_quote_backtick_s,
+ main->output.to.stream
+ );
}
f_print_except_dynamic_partial(data->buffer, data->objects.array[at], delimits_object, main->output.to.stream);
if ((data->option & fss_extended_read_data_option_original_d) && data->quotes_object.array[at]) {
- f_print_dynamic_raw(data->quotes_object.array[at] == f_fss_quote_type_single_e ? f_fss_quote_single_s : f_fss_quote_double_s, main->output.to.stream);
+ f_print_dynamic_raw(
+ data->quotes_object.array[at] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s
+ : data->quotes_object.array[at] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s
+ : f_fss_quote_backtick_s,
+ main->output.to.stream
+ );
}
}
content_printed = F_true;
if ((data->option & fss_extended_read_data_option_original_d) && data->quotes_content.array[at].array[data->select]) {
- f_print_dynamic_raw(data->quotes_content.array[at].array[data->select] == f_fss_quote_type_single_e ? f_fss_quote_single_s : f_fss_quote_double_s, main->output.to.stream);
+ f_print_dynamic_raw(
+ data->quotes_content.array[at].array[data->select] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s
+ : data->quotes_content.array[at].array[data->select] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s
+ : f_fss_quote_backtick_s,
+ main->output.to.stream
+ );
}
f_print_except_dynamic_partial(data->buffer, data->contents.array[at].array[data->select], delimits_content, main->output.to.stream);
if ((data->option & fss_extended_read_data_option_original_d) && data->quotes_content.array[at].array[data->select]) {
- f_print_dynamic_raw(data->quotes_content.array[at].array[data->select] == f_fss_quote_type_single_e ? f_fss_quote_single_s : f_fss_quote_double_s, main->output.to.stream);
+ f_print_dynamic_raw(
+ data->quotes_content.array[at].array[data->select] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s
+ : data->quotes_content.array[at].array[data->select] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s
+ : f_fss_quote_backtick_s,
+ main->output.to.stream
+ );
}
}
}
content_printed = F_true;
if ((data->option & fss_extended_read_data_option_original_d) && data->quotes_content.array[at].array[i]) {
- f_print_dynamic_raw(data->quotes_content.array[at].array[i] == f_fss_quote_type_single_e ? f_fss_quote_single_s : f_fss_quote_double_s, main->output.to.stream);
+ f_print_dynamic_raw(
+ data->quotes_content.array[at].array[i] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s
+ : data->quotes_content.array[at].array[i] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s
+ : f_fss_quote_backtick_s,
+ main->output.to.stream
+ );
}
f_print_except_dynamic_partial(data->buffer, data->contents.array[at].array[i], delimits_content, main->output.to.stream);
if ((data->option & fss_extended_read_data_option_original_d) && data->quotes_content.array[at].array[i]) {
- f_print_dynamic_raw(data->quotes_content.array[at].array[i] == f_fss_quote_type_single_e ? f_fss_quote_single_s : f_fss_quote_double_s, main->output.to.stream);
+ f_print_dynamic_raw(
+ data->quotes_content.array[at].array[i] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s
+ : data->quotes_content.array[at].array[i] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s
+ : f_fss_quote_backtick_s,
+ main->output.to.stream
+ );
}
if (i + 1 < data->contents.array[at].used && data->contents.array[at].array[i + 1].start <= data->contents.array[at].array[i + 1].stop) {
}
else {
if ((data->option & fss_extended_read_data_option_original_d) && data->quotes_object.array[at]) {
- f_print_character_safely(data->quotes_object.array[at] == f_fss_quote_type_single_e ? f_fss_quote_single_s.string[0] : f_fss_quote_double_s.string[0], main->output.to.stream);
+ f_print_character_safely(
+ data->quotes_object.array[at] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s.string[0]
+ : data->quotes_object.array[at] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s.string[0]
+ : f_fss_quote_backtick_s.string[0],
+ main->output.to.stream
+ );
}
fss_extended_read_print_at(main, i, *delimits_object, *delimits_content, data);
if ((data->option & fss_extended_read_data_option_original_d) && data->quotes_object.array[at]) {
- f_print_character_safely(data->quotes_object.array[at] == f_fss_quote_type_single_e ? f_fss_quote_single_s.string[0] : f_fss_quote_double_s.string[0], main->output.to.stream);
+ f_print_character_safely(
+ data->quotes_object.array[at] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s.string[0]
+ : data->quotes_object.array[at] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s.string[0]
+ : f_fss_quote_backtick_s.string[0],
+ main->output.to.stream
+ );
}
}
}
}
else {
if ((data->option & fss_extended_read_data_option_original_d) && data->quotes_content.array[at].array[i]) {
- f_print_character_safely(data->quotes_content.array[at].array[i] == f_fss_quote_type_single_e ? f_fss_quote_single_s.string[0] : f_fss_quote_double_s.string[0], main->output.to.stream);
+ f_print_character_safely(
+ data->quotes_content.array[at].array[i] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s.string[0]
+ : data->quotes_content.array[at].array[i] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s.string[0]
+ : f_fss_quote_backtick_s.string[0],
+ main->output.to.stream
+ );
}
fss_extended_read_print_at(main, i, *delimits_object, *delimits_content, data);
if ((data->option & fss_extended_read_data_option_original_d) && data->quotes_content.array[at].array[i]) {
- f_print_character_safely(data->quotes_content.array[at].array[i] == f_fss_quote_type_single_e ? f_fss_quote_single_s.string[0] : f_fss_quote_double_s.string[0], main->output.to.stream);
+ f_print_character_safely(
+ data->quotes_content.array[at].array[i] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s.string[0]
+ : data->quotes_content.array[at].array[i] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s.string[0]
+ : f_fss_quote_backtick_s.string[0],
+ main->output.to.stream
+ );
}
}
if (data->option & fss_payload_read_data_option_object_d) {
if (data->option & fss_payload_read_data_option_trim_d) {
if ((data->option & fss_payload_read_data_option_original_d) && data->quotes_object_header.array[at]) {
- f_print_dynamic_raw(data->quotes_object_header.array[at] == f_fss_quote_type_single_e ? f_fss_quote_single_s : f_fss_quote_double_s, main->output.to.stream);
+ f_print_dynamic_raw(
+ data->quotes_object_header.array[at] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s
+ : data->quotes_object_header.array[at] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s
+ : f_fss_quote_backtick_s,
+ main->output.to.stream
+ );
}
fl_print_trim_except_dynamic_partial(data->buffer, data->objects_header.array[at], delimits_object, main->output.to.stream);
if ((data->option & fss_payload_read_data_option_original_d) && data->quotes_object_header.array[at]) {
- f_print_dynamic_raw(data->quotes_object_header.array[at] == f_fss_quote_type_single_e ? f_fss_quote_single_s : f_fss_quote_double_s, main->output.to.stream);
+ f_print_dynamic_raw(
+ data->quotes_object_header.array[at] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s
+ : data->quotes_object_header.array[at] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s
+ : f_fss_quote_backtick_s,
+ main->output.to.stream
+ );
}
}
else {
if ((data->option & fss_payload_read_data_option_original_d) && data->quotes_object_header.array[at]) {
- f_print_dynamic_raw(data->quotes_object_header.array[at] == f_fss_quote_type_single_e ? f_fss_quote_single_s : f_fss_quote_double_s, main->output.to.stream);
+ f_print_dynamic_raw(
+ data->quotes_object_header.array[at] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s
+ : data->quotes_object_header.array[at] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s
+ : f_fss_quote_backtick_s,
+ main->output.to.stream
+ );
}
f_print_except_dynamic_partial(data->buffer, data->objects_header.array[at], delimits_object, main->output.to.stream);
if ((data->option & fss_payload_read_data_option_original_d) && data->quotes_object_header.array[at]) {
- f_print_dynamic_raw(data->quotes_object_header.array[at] == f_fss_quote_type_single_e ? f_fss_quote_single_s : f_fss_quote_double_s, main->output.to.stream);
+ f_print_dynamic_raw(
+ data->quotes_object_header.array[at] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s
+ : data->quotes_object_header.array[at] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s
+ : f_fss_quote_backtick_s,
+ main->output.to.stream
+ );
}
}
content_printed = F_true;
if ((data->option & fss_payload_read_data_option_original_d) && data->quotes_content_header.array[at].array[data->select]) {
- f_print_dynamic_raw(data->quotes_content_header.array[at].array[data->select] == f_fss_quote_type_single_e ? f_fss_quote_single_s : f_fss_quote_double_s, main->output.to.stream);
+ f_print_dynamic_raw(
+ data->quotes_content_header.array[at].array[data->select] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s
+ : data->quotes_content_header.array[at].array[data->select] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s
+ : f_fss_quote_backtick_s,
+ main->output.to.stream
+ );
}
f_print_except_dynamic_partial(data->buffer, data->contents_header.array[at].array[data->select], delimits_content, main->output.to.stream);
if ((data->option & fss_payload_read_data_option_original_d) && data->quotes_content_header.array[at].array[data->select]) {
- f_print_dynamic_raw(data->quotes_content_header.array[at].array[data->select] == f_fss_quote_type_single_e ? f_fss_quote_single_s : f_fss_quote_double_s, main->output.to.stream);
+ f_print_dynamic_raw(
+ data->quotes_content_header.array[at].array[data->select] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s
+ : data->quotes_content_header.array[at].array[data->select] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s
+ : f_fss_quote_backtick_s,
+ main->output.to.stream
+ );
}
}
}
content_printed = F_true;
if ((data->option & fss_payload_read_data_option_original_d) && data->quotes_content_header.array[at].array[i]) {
- f_print_dynamic_raw(data->quotes_content_header.array[at].array[i] == f_fss_quote_type_single_e ? f_fss_quote_single_s : f_fss_quote_double_s, main->output.to.stream);
+ f_print_dynamic_raw(
+ data->quotes_content_header.array[at].array[i] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s
+ : data->quotes_content_header.array[at].array[i] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s
+ : f_fss_quote_backtick_s,
+ main->output.to.stream
+ );
}
f_print_except_dynamic_partial(data->buffer, data->contents_header.array[at].array[i], delimits_content, main->output.to.stream);
if ((data->option & fss_payload_read_data_option_original_d) && data->quotes_content_header.array[at].array[i]) {
- f_print_dynamic_raw(data->quotes_content_header.array[at].array[i] == f_fss_quote_type_single_e ? f_fss_quote_single_s : f_fss_quote_double_s, main->output.to.stream);
+ f_print_dynamic_raw(
+ data->quotes_content_header.array[at].array[i] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s
+ : data->quotes_content_header.array[at].array[i] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s
+ : f_fss_quote_backtick_s,
+ main->output.to.stream
+ );
}
if (i + 1 < data->contents_header.array[at].used && data->contents_header.array[at].array[i + 1].start <= data->contents_header.array[at].array[i + 1].stop) {
}
else {
if ((data->option & fss_payload_read_data_option_original_d) && data->quotes_object_header.array[at]) {
- f_print_character_safely(data->quotes_object_header.array[at] == f_fss_quote_type_single_e ? f_fss_quote_single_s.string[0] : f_fss_quote_double_s.string[0], main->output.to.stream);
+ f_print_character_safely(
+ data->quotes_object_header.array[at] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s.string[0]
+ : data->quotes_object_header.array[at] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s.string[0]
+ : f_fss_quote_backtick_s.string[0],
+ main->output.to.stream
+ );
}
fss_payload_read_print_at_extended(main, i, *delimits_object, *delimits_content, data);
if ((data->option & fss_payload_read_data_option_original_d) && data->quotes_object_header.array[at]) {
- f_print_character_safely(data->quotes_object_header.array[at] == f_fss_quote_type_single_e ? f_fss_quote_single_s.string[0] : f_fss_quote_double_s.string[0], main->output.to.stream);
+ f_print_character_safely(
+ data->quotes_object_header.array[at] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s.string[0]
+ : data->quotes_object_header.array[at] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s.string[0]
+ : f_fss_quote_backtick_s.string[0],
+ main->output.to.stream
+ );
}
}
}
}
else {
if ((data->option & fss_payload_read_data_option_original_d) && data->quotes_content_header.array[at].array[i]) {
- f_print_character_safely(data->quotes_content_header.array[at].array[i] == f_fss_quote_type_single_e ? f_fss_quote_single_s.string[0] : f_fss_quote_double_s.string[0], main->output.to.stream);
+ f_print_character_safely(
+ data->quotes_content_header.array[at].array[i] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s.string[0]
+ : data->quotes_content_header.array[at].array[i] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s.string[0]
+ : f_fss_quote_backtick_s.string[0],
+ main->output.to.stream
+ );
}
fss_payload_read_print_at_extended(main, i, *delimits_object, *delimits_content, data);
if ((data->option & fss_payload_read_data_option_original_d) && data->quotes_content_header.array[at].array[i]) {
- f_print_character_safely(data->quotes_content_header.array[at].array[i] == f_fss_quote_type_single_e ? f_fss_quote_single_s.string[0] : f_fss_quote_double_s.string[0], main->output.to.stream);
+ f_print_character_safely(
+ data->quotes_content_header.array[at].array[i] == f_fss_quote_type_single_e
+ ? f_fss_quote_single_s.string[0]
+ : data->quotes_content_header.array[at].array[i] == f_fss_quote_type_double_e
+ ? f_fss_quote_double_s.string[0]
+ : f_fss_quote_backtick_s.string[0],
+ main->output.to.stream
+ );
}
}