From: Raphael Bauer Date: Mon, 21 Feb 2022 22:38:30 GMT Subject: Pretty format color bug Message-ID: Hello, I think I found a minor formatting bug when using the custom pretty format: * What did you do before the bug happened? (Steps to reproduce your issue) git log --pretty=format:'%h%Cred%+d test' * What did you expect to happen? (Expected behavior) A listing of commit hashes and, if ref names for this commit exist, a second line. This line should be colored in red and contain the ref names as well as the string 'test'. In the case of no refs, the string 'test' should appear in line with the commit hash, also in red. * What happened instead? (Actual behavior) In case of ref names / a second line, the color is missing completely. The colors work correctly for the single line case (when no ref names are available). * What's different between what you expected and what actually happened? The %+d placeholder inserts newlines if the string is non-empty, but in doing so, resets any coloring information. This is demonstrated by the string 'test' which should always show in red, but does so only if %+d is not expanded. This makes it currently impossible to color anything with the %+ placeholder. [System Info] git version: git version 2.35.1 cpu: x86_64 no commit associated with this build sizeof-long: 8 sizeof-size_t: 8 shell-path: /bin/sh uname: Linux 5.16.10-arch1-1 #1 SMP PREEMPT Wed, 16 Feb 2022 19:35:18 +0000 x86_64 compiler info: gnuc: 11.1 libc info: glibc: 2.35 $SHELL (typically, interactive shell): /bin/bash [Enabled Hooks]