static bool ext_fileinto_operation_dump (const struct sieve_dumptime_env *denv, sieve_size_t *address) { sieve_code_dumpf(denv, "FILEINTO"); sieve_code_descend(denv); if ( sieve_action_opr_optional_dump(denv, address, NULL) != 0 ) return FALSE; return sieve_opr_string_dump(denv, address, "folder"); }
static bool cmd_execute_operation_dump (const struct sieve_dumptime_env *denv, sieve_size_t *address) { int opt_code = 0; unsigned int is_test = 0; /* Read is_test flag */ if ( !sieve_binary_read_byte(denv->sblock, address, &is_test) ) return FALSE; sieve_code_dumpf(denv, "EXECUTE (%s)", (is_test ? "test" : "command")); sieve_code_descend(denv); /* Dump optional operands */ for (;;) { int opt; bool opok = TRUE; if ( (opt=sieve_action_opr_optional_dump(denv, address, &opt_code)) < 0 ) return FALSE; if ( opt == 0 ) break; switch ( opt_code ) { case OPT_INPUT: opok = sieve_opr_string_dump_ex(denv, address, "input", "PIPE"); break; case OPT_OUTPUT: opok = sieve_opr_string_dump(denv, address, "output"); break; default: return FALSE; } if ( !opok ) return FALSE; } if ( !sieve_opr_string_dump(denv, address, "program-name") ) return FALSE; return sieve_opr_stringlist_dump_ex(denv, address, "arguments", ""); }
static bool cmd_filter_operation_dump (const struct sieve_dumptime_env *denv, sieve_size_t *address) { unsigned int is_test = 0; /* Read is_test flag */ if ( !sieve_binary_read_byte(denv->sblock, address, &is_test) ) return FALSE; sieve_code_dumpf(denv, "FILTER (%s)", (is_test ? "test" : "command")); sieve_code_descend(denv); /* Dump optional operands */ if ( sieve_action_opr_optional_dump(denv, address, NULL) != 0 ) return FALSE; if ( !sieve_opr_string_dump(denv, address, "program-name") ) return FALSE; return sieve_opr_stringlist_dump_ex(denv, address, "arguments", ""); }