On Thu, Feb 1, 2018 at 11:29 AM, Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> wrote: > > On Thu, Jan 04 2018, Stefan Beller jotted: > >> Stefan Beller (4): >> color.h: document and modernize header >> builtin/blame: dim uninteresting metadata >> builtin/blame: add option to color metadata fields separately >> builtin/blame: highlight recently changed lines > > I like this feature in principle, but I can't get it to work. Building > pu and: Thanks for testing the feature! Please use the flag `--color-lines`, `--color-fields` or `--heated-lines` for experimentation. In the future we may decide that one of them becomes the default (which one?) and is triggered by the color.ui=always setting as well. > ./git -c color.ui=always --exec-path=$PWD blame Makefile > > Shows no colors. Neither does: > > ./git -c color.ui=always --exec-path=$PWD -c color.blame.highlightRecent="red,12 month ago,blue" blame Makefile > > And there's a bug, it segfaults on any custom value to the other config > option: > > ./git -c color.ui=always --exec-path=$PWD -c color.blame.repeatedMeta=red blame Makefile > > 0x00000000004c312b in color_parse_mem (value=0x8f6520 "red", value_len=3, dst=0x1 <Address 0x1 out of bounds>) at color.c:272 > 272 OUT('\033'); > > The repeated_meta_color variable is NULL when passed to > color_parse_mem(). Didn't dig further. Thanks for noticing. Fix below (white space mangled) --- i/builtin/blame.c +++ w/builtin/blame.c @@ -48,7 +48,7 @@ static int xdl_opts; static int abbrev = -1; static int no_whole_file_rename; static int show_progress; -static char *repeated_meta_color; +static char repeated_meta_color[COLOR_MAXLEN]; static struct date_mode blame_date_mode = { DATE_ISO8601 }; static size_t blame_date_width; @@ -1099,9 +1099,9 @@ int cmd_blame(int argc, const char **argv, const char *prefix) if (!(output_option & OUTPUT_PORCELAIN)) { find_alignment(&sb, &output_option); - if (!repeated_meta_color && + if (!*repeated_meta_color && (output_option & (OUTPUT_COLOR_LINE | OUTPUT_COLOR_FIELDS))) - repeated_meta_color = GIT_COLOR_DARK; + strcpy(repeated_meta_color, GIT_COLOR_DARK); }