neovim/neovim — pull request #413 by tarruda (2014-03-27 16:53:48+00:00)
Title: [WIP] Re-integrate FEAT_FILTERPIPE code

I accidentally removed this feature while doing the first import. This feature makes vim use pipes instead of temporary files for writing and reading data to/from shell commands. For example

```vim
r !ls *.o " read all object files into the current buffer
%s/\(.*\).o/rm &/ " replace each [filename] with 'rm [filename]`
w !sh " execute the buffer as a shell script
```

I found that this was missing when looking for references of SHELL_READ/SHELL_WRITE in outside mch_call_shell`. To execute the commands above vim can use pipes if support was compiled, or temporary files as a fallback.

Since `mch_call_shell` will be ported to libuv, we'll just use its cross-platform IPC streams instead of temporary files so this feature might as well become permanent.