Coverage Report

Created: 2026-04-12 07:00

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-modifiers.h
Line
Count
Source
1
#ifndef EXT_VARIABLES_MODIFIERS_H
2
#define EXT_VARIABLES_MODIFIERS_H
3
4
#include "sieve-common.h"
5
#include "sieve-runtime-trace.h"
6
7
#include "ext-variables-common.h"
8
9
#define ext_variables_namespace_name(nspc) \
10
  (nspc)->object->def->name
11
#define ext_variables_namespaces_equal(nspc1, nspc2) \
12
  ((nspc1)->def == (nspc2)->def))
13
14
/*
15
 * Modifier registry
16
 */
17
18
bool ext_variables_modifier_exists(const struct sieve_extension *var_ext,
19
           struct sieve_validator *valdtr,
20
           const char *identifier);
21
const struct sieve_variables_modifier *
22
ext_variables_modifier_create_instance(const struct sieve_extension *var_ext,
23
               struct sieve_validator *valdtr,
24
               struct sieve_command *cmd,
25
               const char *identifier);
26
27
void ext_variables_register_core_modifiers(
28
  const struct sieve_extension *var_ext,
29
  struct ext_variables_validator_context *ctx);
30
31
/*
32
 * Modifier operand
33
 */
34
35
extern const struct sieve_operand_def modifier_operand;
36
37
static inline void
38
ext_variables_opr_modifier_emit(
39
  struct sieve_binary_block *sblock, const struct sieve_extension *ext,
40
  const struct sieve_variables_modifier_def *modf_def)
41
0
{
42
0
  sieve_opr_object_emit(sblock, ext, &modf_def->obj_def);
43
0
}
Unexecuted instantiation: ext-variables.c:ext_variables_opr_modifier_emit
Unexecuted instantiation: ext-variables-common.c:ext_variables_opr_modifier_emit
Unexecuted instantiation: ext-variables-modifiers.c:ext_variables_opr_modifier_emit
44
45
static inline bool
46
ext_variables_opr_modifier_read(const struct sieve_runtime_env *renv,
47
        const struct sieve_extension *var_ext,
48
        sieve_size_t *address,
49
        struct sieve_variables_modifier *modf)
50
0
{
51
0
  if (!sieve_opr_object_read(
52
0
    renv, &sieve_variables_modifier_operand_class, address,
53
0
    &modf->object)) {
54
0
    sieve_runtime_trace_error(renv, "invalid modifier operand");
55
0
    return FALSE;
56
0
  }
57
58
0
  modf->def = (const struct sieve_variables_modifier_def *)modf->object.def;
59
0
  modf->var_ext = var_ext;
60
0
  return TRUE;
61
0
}
Unexecuted instantiation: ext-variables.c:ext_variables_opr_modifier_read
Unexecuted instantiation: ext-variables-common.c:ext_variables_opr_modifier_read
Unexecuted instantiation: ext-variables-modifiers.c:ext_variables_opr_modifier_read
62
63
static inline bool
64
ext_variables_opr_modifier_dump(const struct sieve_dumptime_env *denv,
65
        sieve_size_t *address)
66
0
{
67
0
  return sieve_opr_object_dump(
68
    denv, &sieve_variables_modifier_operand_class, address, NULL);
69
0
}
Unexecuted instantiation: ext-variables.c:ext_variables_opr_modifier_dump
Unexecuted instantiation: ext-variables-common.c:ext_variables_opr_modifier_dump
Unexecuted instantiation: ext-variables-modifiers.c:ext_variables_opr_modifier_dump
70
71
#endif