Re: Conditional newline in pretty format

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

 



On Tue, Mar 17, 2020 at 12:18 PM Jeff King <peff@xxxxxxxx> wrote:
>
> On Tue, Mar 17, 2020 at 10:37:13AM -0500, Robert Dailey wrote:
>
> > > It works perfectly right now except for the case where `%b` is empty.
> > > In that case, I just want one newline after `%s` instead of 2. Is
> > > there a way to make my second `%n` conditional on `%b` having a value?
> > [...]
> > Another solution I tried is `%+b`, based on this documentation:
>
> That's what I would have suggested. And it does seem to work if you do:
>
>   git log --format='* %s%n%+b'
>
> but not when you add in the indentation and wrapping:
>
>   git log --format='* %s%n%w(100,2,2)%+b'
>
> Which is unfortunate, but I think makes sense: the wrapping sees the
> extra newline as part of the text to be wrapped, so it gets folded into
> the first line.
>
> I think what you really want is a conditional that can cover multiple
> placeholders, and put the wrapped body inside that. You can do that with
> the for-each-ref placeholders, which have a real "%(if)...%(end)" block.
> But I don't think the pretty-format placeholders have an equivalent. It
> would be nice to unify them one day, but progress has been slow on that
> front.
>
> I wonder in the meantime if it would be possible to introduce a block
> syntax to the pretty formats, like:
>
>   git log --format='* %s%n%+{%w(100,2,2)%b}'
>
> or something. I don't know the conditional code well enough to say
> whether that would be a trivial patch or a horribly complicated one. :)

Thanks for the information. It could also be that for something this
complex, expecting Git to do it internally might be unreasonable. I'll
try to come up with a bash script to replace the alias. It'll be a lot
more verbose but I can take more of a "string builder" approach in an
actual script which might be more intuitive. I just wanted to check
for any bugs/built-in behavior before I go that route.



[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