ul_jsonwrt_object_close(json);
}
-
-int filter_eval_expr(struct libscols_filter *fltr, struct filter_expr *n,
- struct libscols_line *ln, int *status)
+int filter_eval_expr(struct libscols_filter *fltr, struct libscols_line *ln,
+ struct filter_expr *n, int *status)
{
int rc = 0;
struct filter_param *l = NULL, *r = NULL;
/* logical operators */
switch (oper) {
case F_EXPR_AND:
- rc = filter_eval_node(fltr, n->left, ln, status);
+ rc = filter_eval_node(fltr, ln, n->left, status);
if (rc == 0 && *status)
- rc = filter_eval_node(fltr, n->right, ln, status);
+ rc = filter_eval_node(fltr, ln, n->right, status);
return rc;
case F_EXPR_OR:
- rc = filter_eval_node(fltr, n->left, ln, status);
+ rc = filter_eval_node(fltr, ln, n->left, status);
if (rc == 0 && !*status)
- rc = filter_eval_node(fltr, n->right, ln, status);
+ rc = filter_eval_node(fltr, ln, n->right, status);
return rc;
case F_EXPR_NEG:
- rc = filter_eval_node(fltr, n->right, ln, status);
+ rc = filter_eval_node(fltr, ln, n->right, status);
if (rc == 0)
*status = !*status;
return rc;
}
int filter_eval_param(struct libscols_filter *fltr,
- struct filter_param *n,
struct libscols_line *ln,
+ struct filter_param *n,
int *status)
{
int rc = 0;
return ct == 0 ? 1 : 0;
}
-int filter_eval_node(struct libscols_filter *fltr, struct filter_node *n,
- struct libscols_line *ln, int *status)
+int filter_eval_node(struct libscols_filter *fltr, struct libscols_line *ln,
+ struct filter_node *n, int *status)
{
switch (n->type) {
case F_NODE_PARAM:
- return filter_eval_param(fltr, (struct filter_param *) n, ln, status);
+ return filter_eval_param(fltr, ln, (struct filter_param *) n, status);
case F_NODE_EXPR:
- return filter_eval_expr(fltr, (struct filter_expr *) n, ln, status);
+ return filter_eval_expr(fltr, ln, (struct filter_expr *) n, status);
default:
break;
}
if (!ln || !fltr || !fltr->root)
return -EINVAL;
- rc = filter_eval_node(fltr, fltr->root, ln, status);
+ rc = filter_eval_node(fltr, ln, fltr->root, status);
DBG(FLTR, ul_debugobj(fltr, "filter applid [rc=%d, status=%d]", rc, *status));
return rc;
void filter_unref_node(struct filter_node *n);
void filter_dump_node(struct ul_jsonwrt *json, struct filter_node *n);
-int filter_eval_node(struct libscols_filter *fltr, struct filter_node *n,
- struct libscols_line *ln, int *status);
+int filter_eval_node(struct libscols_filter *fltr, struct libscols_line *ln,
+ struct filter_node *n, int *status);
/* param */
void filter_dump_param(struct ul_jsonwrt *json, struct filter_param *n);
-int filter_eval_param(struct libscols_filter *fltr, struct filter_param *n,
- struct libscols_line *ln, int *status);
+int filter_eval_param(struct libscols_filter *fltr, struct libscols_line *ln,
+ struct filter_param *n, int *status);
void filter_free_param(struct filter_param *n);
int filter_next_param(struct libscols_filter *fltr,
/* expr */
void filter_free_expr(struct filter_expr *n);
void filter_dump_expr(struct ul_jsonwrt *json, struct filter_expr *n);
-int filter_eval_expr(struct libscols_filter *fltr, struct filter_expr *n,
- struct libscols_line *ln, int *status);
+int filter_eval_expr(struct libscols_filter *fltr, struct libscols_line *ln,
+ struct filter_expr *n, int *status);
/* required by parser */
struct filter_node *filter_new_param(struct libscols_filter *filter,