}
}
- // 0x1 = object printed, 0x2 = content printed, 0x4 = object end printed, 0x8 = content is empty, 0x10 = select is out of range.
- uint8_t print_state = 0x0;
+ #define ___fss_read_flag_print_content___ 0x1
+ #define ___fss_read_flag_print_content_empty___ 0x2
+ #define ___fss_read_flag_print_object___ 0x4
+ #define ___fss_read_flag_print_object_end___ 0x8
+ #define ___fss_read_flag_print_object_end_content___ 0x9
+ #define ___fss_read_flag_print_range_out___ 0x10
+ #define ___fss_read_flag_print_range_out_content_empty___ 0x12
+
+ uint8_t flag_print = 0x0;
if (main->setting.flag & fss_read_main_flag_object_d) {
if (main->call.print_object) {
- print_state = 0x1;
+ flag_print = ___fss_read_flag_print_object___;
main->call.print_object(&main->program.output, at, delimits_object);
}
if (main->setting.flag & fss_read_main_flag_select_d) {
if (main->setting.select < main->setting.contents.array[at].used && main->setting.contents.array[at].array[main->setting.select].start <= main->setting.contents.array[at].array[main->setting.select].stop) {
if (main->call.print_content && main->call.print_object_end_content) {
- if (print_state & 0x1) {
+ if (flag_print & ___fss_read_flag_print_object___) {
if (F_status_set_fine(
main->call.print_object_end_content(
&main->program.output,
delimits_content
)
) != F_output_not) {
- print_state |= 0x6;
+ flag_print |= ___fss_read_flag_print_object_end_content___;
}
}
else {
delimits_content
)
) != F_output_not) {
- print_state |= 0x2;
+ flag_print |= ___fss_read_flag_print_content___;
}
}
}
}
else {
- print_state |= (main->setting.select < main->setting.contents.array[at].used) ? 0x8 : 0x18;
+ flag_print |= (main->setting.select < main->setting.contents.array[at].used)
+ ? ___fss_read_flag_print_content_empty___
+ : ___fss_read_flag_print_range_out_content_empty___;
}
}
else if (main->setting.contents.array[at].used) {
f_number_unsigned_t i = 0;
// Loop through with conditionals only when necessary for performance reasons.
- for (print_state |= 0x8; i < main->setting.contents.array[at].used; ++i) {
+ for (flag_print |= ___fss_read_flag_print_content_empty___; i < main->setting.contents.array[at].used; ++i) {
if (macro_fss_read_signal_check(&main->program, &main->setting.state)) return F_status_set_error(F_interrupt);
if (main->setting.contents.array[at].array[i].start <= main->setting.contents.array[at].array[i].stop) {
- print_state &= ~0x8;
+ flag_print &= ~___fss_read_flag_print_content_empty___;
- if (print_state & 0x1) {
+ if (flag_print & ___fss_read_flag_print_object___) {
if (F_status_set_fine(
main->call.print_object_end_content(
&main->program.output,
delimits_content
)
) != F_output_not) {
- print_state |= 0x6;
+ flag_print |= ___fss_read_flag_print_object_end_content___;
}
}
else if (F_status_set_fine(
delimits_content
)
) != F_output_not) {
- print_state |= 0x2;
+ flag_print |= ___fss_read_flag_print_content___;
}
++i;
}
}
else {
- print_state |= 0x8;
+ flag_print |= ___fss_read_flag_print_content_empty___;
}
- if (print_state & 0x8) {
- if (print_state & 0x1) {
- if (!(print_state & 0x4) && main->call.print_object_end_empty) {
+ if (flag_print & ___fss_read_flag_print_content_empty___) {
+ if (flag_print & ___fss_read_flag_print_object___) {
+ if (!(flag_print & ___fss_read_flag_print_object_end___) && main->call.print_object_end_empty) {
main->call.print_object_end_empty(&main->program.output);
}
}
- if ((print_state & 0x1) || !(print_state & 0x10)) {
+ if ((flag_print & ___fss_read_flag_print_object___) || !(flag_print & ___fss_read_flag_print_range_out___)) {
if (main->call.print_set_end) {
main->call.print_set_end(&main->program.output, at);
}
}
}
else {
- if ((print_state & 0x3) != 0x3 && (print_state & 0x1)) {
- if (!(print_state & 0x4) && main->call.print_object_end) {
+ if ((flag_print & ___fss_read_flag_print_object___) && !(flag_print & ___fss_read_flag_print_content___)) {
+ if (!(flag_print & ___fss_read_flag_print_object_end___) && main->call.print_object_end) {
main->call.print_object_end(&main->program.output);
}
}
}
}
}
- else if (print_state & 0x1) {
+ else if (flag_print & ___fss_read_flag_print_object___) {
if (main->call.print_object_end_empty) {
main->call.print_object_end_empty(&main->program.output);
}
}
}
+ #undef ___fss_read_flag_print_content___
+ #undef ___fss_read_flag_print_content_empty___
+ #undef ___fss_read_flag_print_object___
+ #undef ___fss_read_flag_print_object_end___
+ #undef ___fss_read_flag_print_object_end_content___
+ #undef ___fss_read_flag_print_range_out___
+ #undef ___fss_read_flag_print_range_out_content_empty___
+
return F_okay;
}
#endif // _di_fss_read_print_at_
if (!main || !line) return;
- // 0x1 = object printed, 0x2 = content printed, 0x4 = object end printed, 0x8 = content is empty, 0x10 = select is out of range.
- uint8_t print_state = 0x0;
+ #define ___fss_read_flag_print_content___ 0x1
+ #define ___fss_read_flag_print_object___ 0x2
+ #define ___fss_read_flag_print_object_end___ 0x4
+ #define ___fss_read_flag_print_object_end_content___ 0x5
+
+ uint8_t flag_print = 0x0;
if (main->setting.flag & fss_read_main_flag_object_d) {
if (*line == main->setting.line) {
if (main->call.print_object) {
if (F_status_set_fine(main->call.print_object(&main->program.output, at, delimits_object)) != F_output_not) {
- print_state = 0x1;
+ flag_print = ___fss_read_flag_print_object___;
}
}
if ((main->setting.feature & fss_read_feature_flag_object_as_line_d) && main->call.print_object_end) {
if (F_status_set_fine(main->call.print_object_end(&main->program.output)) != F_output_not) {
- print_state = 0x4;
+ flag_print = ___fss_read_flag_print_object_end___;
}
}
}
for (f_status_t printed = F_okay; ; ) {
if (main->setting.contents.array[at].array[i].start <= main->setting.contents.array[at].array[i].stop) {
- if ((print_state & 0x1) && !(print_state & 0x4)) {
+ if ((flag_print & ___fss_read_flag_print_object___) && !(flag_print & ___fss_read_flag_print_object_end___)) {
printed = main->call.print_object_end_content(&main->program.output, at, main->setting.contents.array[at].array[i], (at < main->setting.quotes_content.used && i < main->setting.quotes_content.array[at].used) ? main->setting.quotes_content.array[at].array[i] : 0, delimits_content);
if (F_status_set_fine(printed) != F_output_not) {
- print_state |= 0x6;
+ flag_print |= ___fss_read_flag_print_object_end_content___;
}
}
else {
printed = main->call.print_content(&main->program.output, at, main->setting.contents.array[at].array[i], (at < main->setting.quotes_content.used && i < main->setting.quotes_content.array[at].used) ? main->setting.quotes_content.array[at].array[i] : 0, delimits_content);
if (F_status_set_fine(printed) != F_output_not) {
- print_state |= 0x2;
+ flag_print |= ___fss_read_flag_print_content___;
}
}
}
if (*line == main->setting.line) {
main->setting.range.stop = j;
- if ((print_state & 0x1) && !(print_state & 0x4)) {
+ if ((flag_print & ___fss_read_flag_print_object___) && !(flag_print & ___fss_read_flag_print_object_end___)) {
main->call.print_object_end_content(&main->program.output, at, main->setting.range, (at < main->setting.quotes_content.used && i < main->setting.quotes_content.array[at].used) ? main->setting.quotes_content.array[at].array[i] : 0, delimits_content);
}
else {
}
main->setting.state.status = F_okay;
+
+ #undef ___fss_read_flag_print_content___
+ #undef ___fss_read_flag_print_object___
+ #undef ___fss_read_flag_print_object_end___
+ #undef ___fss_read_flag_print_object_end_content___
}
#endif // _di_fss_read_process_at_line_