From: "Govind Salinas" <govind@sophiasuchtig.com>
To: "Johannes Schindelin" <Johannes.Schindelin@gmx.de>
Cc: "Git Mailing List" <git@vger.kernel.org>,
"Junio C Hamano" <gitster@pobox.com>, "Jeff King" <peff@peff.net>
Subject: Re: [PATCH v3] pretty.c: add %x00 format specifier.
Date: Sat, 22 Mar 2008 20:22:54 -0500 [thread overview]
Message-ID: <5d46db230803221822x29cdfc4t8a0b7ff0e36ff435@mail.gmail.com> (raw)
In-Reply-To: <5d46db230803211045w3bc2f407n76f188b1d77680d7@mail.gmail.com>
On Fri, Mar 21, 2008 at 12:45 PM, Govind Salinas
<govind@sophiasuchtig.com> wrote:
>
> On Fri, Mar 21, 2008 at 10:47 AM, Johannes Schindelin
> <Johannes.Schindelin@gmx.de> 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);
prev parent reply other threads:[~2008-03-23 1:23 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-21 15:05 [PATCH v3] pretty.c: add %x00 format specifier Govind Salinas
2008-03-21 15:47 ` Johannes Schindelin
2008-03-21 17:45 ` Govind Salinas
2008-03-23 1:22 ` Govind Salinas [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5d46db230803221822x29cdfc4t8a0b7ff0e36ff435@mail.gmail.com \
--to=govind@sophiasuchtig.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).