From: Julian Phillips Date: Sun, 11 Apr 2010 20:46:18 GMT Subject: Re: [RFC/PATCH 2/3] add a library of code for producing structured output Message-ID: In-Reply-To: On Sun, 11 Apr 2010 13:34:59 -0700 (PDT), Jakub Narebski wrote: > Julian Phillips writes: >> On Sun, 11 Apr 2010 11:16:18 -0700, Junio C Hamano >> wrote: >>> Julian Phillips writes: >>> >>>> Add a library that allows commands to produce structured output in any >>>> of a range of formats using a single API. >>>> >>>> The API includes an OPT_OUTPUT and handle_output_arg so that the >>>> option handling for different commands will be as similar as possible. >>> >>> I was hoping that the existing low-level -z routines (e.g. "diff-* -z") >>> follow similar enough patterns to have a corresponding output-z.c and be >>> handled inside output.c library. But that is not a requirement, just >>> "would have been nicer if the original were written that way". >> >> As the API currently stands, I don't think it would be possible to >> recreate the existing output of -z, as the separator between values is >> not >> constant. I haven't really looked into whether the output is completely >> incompatible with structured output though (i.e. could -z be supported by >> adding one or two functions to the API?). > > What about the new(ly) proposed -Z output in one of its variants, > namely with single NUL ("\0") as field separator, and double NUL ("\0\0") > as a record terminator? That should be much easier. Though actually I am fairly close to getting _all_ output from ls-tree going through the output library ... (i.e. even the normal no-option output). I don't know what people's opinion on this approach is, but I thought it was worth a try anyway. -- Julian