143 |
val->v.string = data; |
val->v.string = data; |
144 |
break; |
break; |
145 |
|
|
146 |
|
case SVT_POINTER: |
147 |
|
val->v.ptr = data; |
148 |
|
break; |
149 |
|
|
150 |
default: |
default: |
151 |
sieve_compile_error (sieve_filename, sieve_line_num, |
sieve_compile_error (sieve_filename, sieve_line_num, |
152 |
"Invalid data type"); |
"Invalid data type"); |
237 |
return 0; |
return 0; |
238 |
} |
} |
239 |
|
|
240 |
char * |
const char * |
241 |
sieve_type_str (sieve_data_type type) |
sieve_type_str (sieve_data_type type) |
242 |
{ |
{ |
243 |
switch (type) |
switch (type) |
262 |
|
|
263 |
case SVT_VALUE_LIST: |
case SVT_VALUE_LIST: |
264 |
return "value-list"; |
return "value-list"; |
265 |
|
|
266 |
|
case SVT_POINTER: |
267 |
|
return "pointer"; |
268 |
} |
} |
269 |
|
|
270 |
return "unknown"; |
return "unknown"; |
320 |
|
|
321 |
case SVT_VALUE_LIST: |
case SVT_VALUE_LIST: |
322 |
list_do (val->v.list, (list_action_t*) value_printer, &dbg); |
list_do (val->v.list, (list_action_t*) value_printer, &dbg); |
323 |
|
|
324 |
|
case SVT_POINTER: |
325 |
|
sieve_debug_internal (printer, data, "%p", val->v.ptr); |
326 |
} |
} |
327 |
sieve_debug_internal (printer, data, ")"); |
sieve_debug_internal (printer, data, ")"); |
328 |
} |
} |
340 |
static int |
static int |
341 |
tag_printer (sieve_runtime_tag_t *val, struct debug_data *dbg) |
tag_printer (sieve_runtime_tag_t *val, struct debug_data *dbg) |
342 |
{ |
{ |
343 |
sieve_debug_internal (dbg->printer, dbg->data, "%d", val->tag); |
sieve_debug_internal (dbg->printer, dbg->data, "%s", val->tag); |
344 |
if (val->arg) |
if (val->arg) |
345 |
{ |
{ |
346 |
sieve_debug_internal (dbg->printer, dbg->data, "("); |
sieve_debug_internal (dbg->printer, dbg->data, "("); |
419 |
{ |
{ |
420 |
struct comp_data *cp = data; |
struct comp_data *cp = data; |
421 |
struct comp_data2 d; |
struct comp_data2 d; |
422 |
int rc; |
int rc = 0; |
423 |
|
int i; |
424 |
if (cp->retr (item, cp->data, &d.sample)) |
|
|
return 0; |
|
425 |
d.comp = cp->comp; |
d.comp = cp->comp; |
426 |
rc = sieve_vlist_do (cp->val, _comp_action2, &d); |
for (i = 0; cp->retr (item, cp->data, i, &d.sample) == 0; i++) |
427 |
free (d.sample); |
{ |
428 |
|
rc = sieve_vlist_do (cp->val, _comp_action2, &d); |
429 |
|
free (d.sample); |
430 |
|
} |
431 |
return rc; |
return rc; |
432 |
} |
} |
433 |
|
|