(defun
    (filter-region what
	(setq what (arg 1 "Command: "))
	(delete-region-to-buffer "Kill buffer")
	(save-excursion
	    (temp-use-buffer "Kill buffer")
	    (write-named-file "$tempi"))
	(system-call (concat what " <\\$tempi >\\$tempo"))
	(error-occured (insert-file "$tempo"))
	(novalue)))
