} else if (it->type == EXPR_OPERATION) {
if (g_queue_is_empty (stack)) {
/* Queue has no operands for operation, exiting */
+ msg_warn ("process_regexp_expression: regexp expression seems to be invalid: empty stack while reading operation");
g_queue_free (stack);
return FALSE;
}
op1 = GPOINTER_TO_SIZE (g_queue_pop_head (stack));
op2 = GPOINTER_TO_SIZE (g_queue_pop_head (stack));
g_queue_push_head (stack, GSIZE_TO_POINTER (op1 && op2));
+ break;
case '|':
op1 = GPOINTER_TO_SIZE (g_queue_pop_head (stack));
op2 = GPOINTER_TO_SIZE (g_queue_pop_head (stack));
g_queue_push_head (stack, GSIZE_TO_POINTER (op1 || op2));
+ break;
default:
it = it->next;
continue;
return TRUE;
}
}
+ else {
+ msg_warn ("process_regexp_expression: regexp expression seems to be invalid: empty stack at the end of expression");
+ }
g_queue_free (stack);