Changes from V6 include: convert: remove erroneous tests for errno == EPIPE - split into separate patch to fix a preexisting bug discovered in the review process pkt-line: Update packet_read_line() to test for len > 0 - split into separate patch to deal with errors that return negative lengths pkt-line: add packet_read_line_gently() - update documentation to clarify return values - update white space in function definition Refactor the filter.<driver>.process code into a separate sub-process module that can be used to reduce the cost of starting up a sub-process for multiple commands. It does this by keeping the external process running and processing all commands by communicating over standard input and standard output using the packet format (pkt-line) based protocol. Full documentation is in Documentation/technical/api-sub-process.txt. This code is refactored from: Commit edcc85814c ("convert: add filter.<driver>.process option", 2016-10-16) keeps the external process running and processes all commands Ben Peart (10): convert: remove erroneous tests for errno == EPIPE pkt-line: fix packet_read_line() to handle len < 0 errors pkt-line: add packet_read_line_gently() convert: move packet_write_line() into pkt-line as packet_writel() convert: split start_multi_file_filter() into two separate functions convert: Separate generic structures and variables from the filter specific ones convert: Update generic functions to only use generic data structures convert: rename reusable sub-process functions sub-process: move sub-process functions into separate files convert: Update subprocess_read_status to not die on EOF Documentation/technical/api-sub-process.txt | 59 ++++++++++ Makefile | 1 + convert.c | 161 ++++++---------------------- pkt-line.c | 33 +++++- pkt-line.h | 12 +++ sub-process.c | 106 ++++++++++++++++++ sub-process.h | 49 +++++++++ 7 files changed, 292 insertions(+), 129 deletions(-) create mode 100644 Documentation/technical/api-sub-process.txt create mode 100644 sub-process.c create mode 100644 sub-process.h -- 2.12.2.gvfs.2.20.g3624a68d62.dirty