git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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);

      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).