Re: [PATCH v3] pretty.c: add %x00 format specifier.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux