On Fri, Mar 21, 2008 at 12:45 PM, Govind Salinas <govind@xxxxxxxxxxxxxxxxx> wrote: > > On Fri, Mar 21, 2008 at 10:47 AM, Johannes Schindelin > <Johannes.Schindelin@xxxxxx> wrote: > > Hi, > > > > > > On Fri, 21 Mar 2008, Govind Salinas wrote: > > > > > This adds a %x00 format which parses the 00 as hex encoding for a byte > > > and prints the resulting byte. This can be used to add null bytes or > > > other bytes that can make machine parsing easier. It is also necessary > > > to use fwrite to print out the data since printf will terminate if you > > > feed it a null. > > > > > > Junio supplied the hex decoding. > > > > This is all nice and well, but if I understood you correctly, your > > original aim was to have a pretty-formatted list of the revisions, but > > NUL-delimited for easy parsing. > > > > Which you can do with "git log --pretty=format:%s -z" right now. > > > > Ciao, > > Dscho > > > > > > Unfortunately that almost work for me. I am in the following situation > If I stick to just using the --pretty=format options then I would be fine > but I am also adding --stat and -p to git-log, so now I have 3 multiline > hunks of data and I need to tell where each one ends deterministically. > I *could* just look for "---" and "diff --git" at every line but I would prefer > to use a delimiter. > > Alternatively, if -z would add a null before the diffstat was printed, that > would probably work for me as well. Even so, using the same delimiter > is nicer than parsing part with newlines and part with nulls, which I would > have to do if I just used -z. Think > "%H%x00%ae%x00%an%x00%s%x00%b%x00 -z -p --stat". there > everything splits nicely with nulls. The alternative (with -z adding a null > before the diffstat is "%H%n%ae%n%an%n%s%n%b -z -p --stat" which > would work, but I would have to parse the last 3 fields differently. > > Perhaps there is a better way to get all this information. But I do want > all the information to come from the same call. > > Thanks, > Govind. > Ok, how about this instead? Perhaps it is more palatable. diff --git a/log-tree.c b/log-tree.c index 608f697..5f55683 100644 --- a/log-tree.c +++ b/log-tree.c @@ -338,7 +338,7 @@ int log_tree_diff_flush(struct rev_info *opt) int pch = DIFF_FORMAT_DIFFSTAT | DIFF_FORMAT_PATCH; if ((pch & opt->diffopt.output_format) == pch) printf("---"); - putchar('\n'); + putchar(opt->diffopt.line_termination); } } diff_flush(&opt->diffopt); -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html