# mod_ext_filter.pl # Module for defining filters that are external commands sub mod_ext_filter_directives { local $rv; $rv = [ [ 'ExtFilterDefine', 1, 18, 'global', 2.0 ] ]; return &make_directives($rv, $_[0], "mod_ext_filter"); } sub mod_ext_filter_filters { local($d, @rv); foreach $d (&find_all_directives($_[0], "ExtFilterDefine")) { push(@rv, $d->{'words'}->[0]); } return @rv; } sub edit_ExtFilterDefine { local ($inrv, $outrv); $outrv = $inrv = "
| $text{'filter_name'} | \n". "$text{'filter_cmd'} | \n". "$text{'filter_intype'} | \n". "$text{'filter_outtype'} | \n". "$text{'filter_preserve'} |
| [0]'> | \n"; $l .= "\n"; $l .= " | \n"; $l .= " | \n"; $l .= " | $text{'yes'} | \n"; $l .= "
\n".
"$text{'filter_out'}
".$outrv);
}
sub save_ExtFilterDefine
{
local (@rv, $i);
for($i=0; defined($in{"ExtFilterDefine_n_$i"}); $i++) {
next if (!$in{"ExtFilterDefine_n_$i"});
$in{"ExtFilterDefine_n_$i"} =~ /^\S+$/ ||
&error(&text('filter_ename', $in{"ExtFilterDefine_n_$i"}));
$in{"ExtFilterDefine_c_$i"} ||
&error(&text('filter_ecmd', $in{"ExtFilterDefine_n_$i"}));
local $l = $in{"ExtFilterDefine_n_$i"}." mode=".
$in{"ExtFilterDefine_m_$i"}." cmd=\"".
$in{"ExtFilterDefine_c_$i"}."\"";
if ($in{"ExtFilterDefine_i_$i"}) {
$l .= " intype=".$in{"ExtFilterDefine_i_$i"};
}
if ($in{"ExtFilterDefine_o_$i"}) {
$l .= " outtype=".$in{"ExtFilterDefine_o_$i"};
}
if ($in{"ExtFilterDefine_p_$i"}) {
$l .= " PreservesContentLength";
}
push(@rv, $l);
}
return ( \@rv );
}