File: //usr/share/jed/lib/filter.sl
define filter_region ()
{
variable cmd, file;
check_region (1); % spot pushed
() = dupmark ();
ERROR_BLOCK
{
pop_mark (0);
pop_spot ();
}
do
{
cmd = read_mini ("Filter command:", Null_String, Null_String);
}
while (not (strlen (cmd)));
file = make_tmp_file ("/tmp/jedfilter");
ERROR_BLOCK
{
pop_spot ();
() = delete_file (file);
}
() = pipe_region (sprintf ("%s > %s", cmd, file));
push_spot ();
if (-1 == insert_file (file))
{
pop_spot ();
error ("Error encountered running filter.");
}
pop_spot ();
del_region ();
EXECUTE_ERROR_BLOCK;
}