const size_t html_buf_idx,
const char *var,
const size_t var_size,
- SDArchiverLinkedList *state_stack,
+ SDArchiverLinkedList *if_state_stack,
const C_SIMPLE_HTTP_ParsedConfig *wrapped_hash_map,
SDArchiverLinkedList *string_part_list,
SDArchiverLinkedList **files_list_out) {
uint32_t *state = malloc(sizeof(uint32_t));
*state = 0;
- uint32_t *prev_state = state_stack->count == 0 ? NULL :
- state_stack->head->next->data;
+ uint32_t *prev_if_state = if_state_stack->count == 0 ? NULL :
+ if_state_stack->head->next->data;
- if (!prev_state
- || (((*prev_state) & 7) == 1
- || ((*prev_state) & 7) == 3
- || ((*prev_state) & 7) == 5)) {
+ if (!prev_if_state
+ || (((*prev_if_state) & 7) == 1
+ || ((*prev_if_state) & 7) == 3
+ || ((*prev_if_state) & 7) == 5)) {
if (is_equality) {
if (strcmp(left_side, right_side) == 0) {
// Is equality is TRUE.
}
}
} else {
- // prev_state is not visible, so this nested block shouldn't be.
+ // prev_if_state is not visible, so this nested block shouldn't be.
(*state) |= 0xA;
}
- simple_archiver_list_add_front(state_stack, state, NULL);
+ simple_archiver_list_add_front(if_state_stack, state, NULL);
c_simple_http_add_string_part(string_part_list, NULL, html_buf_idx + 1);
} else if (strncmp(var + 1, "ELSEIF ", 7) == 0) {
- if (state_stack->count == 0) {
+ if (if_state_stack->count == 0) {
fprintf(stderr, "ERROR No previous conditional! %s\n", var);
return 1;
}
- uint32_t *state = state_stack->head->next->data;
+ uint32_t *state = if_state_stack->head->next->data;
if (((*state) & 7) != 1 && ((*state) & 7) != 2
&& ((*state) & 7) != 3 && ((*state) & 7) != 4) {
fprintf(
}
c_simple_http_add_string_part(string_part_list, NULL, html_buf_idx + 1);
} else if (strncmp(var + 1, "ELSE", 4) == 0) {
- if (state_stack->count == 0) {
+ if (if_state_stack->count == 0) {
fprintf(stderr, "ERROR No previous IF! %s\n", var);
return 1;
}
- uint32_t *state = state_stack->head->next->data;
+ uint32_t *state = if_state_stack->head->next->data;
if (((*state) & 8) == 0) {
// No previous expression resolved to true, enabling ELSE block.
(*state) &= 0xFFFFFFF8;
}
c_simple_http_add_string_part(string_part_list, NULL, html_buf_idx + 1);
} else if (strncmp(var + 1, "ENDIF", 5) == 0) {
- if (state_stack->count == 0) {
+ if (if_state_stack->count == 0) {
fprintf(stderr, "ERROR No previous IF! %s\n", var);
return 1;
}
simple_archiver_list_remove_once(
- state_stack, c_simple_http_internal_always_return_one, NULL);
+ if_state_stack, c_simple_http_internal_always_return_one, NULL);
c_simple_http_add_string_part(string_part_list, NULL, html_buf_idx + 1);
} else if (strncmp(var + 1, "INDEX ", 6) == 0) {
// Indexing into variable array.
// xxxx x111 - ForEach expression contents.
// xxxx 1xxx - Previous If/ElseIf had true/ALLOW.
__attribute__((cleanup(simple_archiver_list_free)))
- SDArchiverLinkedList *state_stack = simple_archiver_list_init();
+ SDArchiverLinkedList *if_state_stack = simple_archiver_list_init();
for (; idx < html_buf_size; ++idx) {
if ((state & 1) == 0) {
if (delimeter_count >= 3) {
delimeter_count = 0;
state |= 1;
- uint32_t *state_stack_head = state_stack->count == 0 ? NULL :
- state_stack->head->next->data;
- if (!state_stack_head
- || ((*state_stack_head) & 7) == 1
- || ((*state_stack_head) & 7) == 3
- || ((*state_stack_head) & 7) == 5) {
+ uint32_t *if_state_stack_head = if_state_stack->count == 0 ? NULL :
+ if_state_stack->head->next->data;
+ if (!if_state_stack_head
+ || ((*if_state_stack_head) & 7) == 1
+ || ((*if_state_stack_head) & 7) == 3
+ || ((*if_state_stack_head) & 7) == 5) {
if (string_part_list->count != 0) {
C_SIMPLE_HTTP_String_Part *last_part =
string_part_list->tail->prev->data;
idx,
var,
var_size,
- state_stack,
+ if_state_stack,
wrapped_hash_map,
string_part_list,
files_list_out) != 0) {