}
# Commit line.
- $line =~ /^([ *|]+) (.+)\x00(.+)\x00(.+)\x00(.+)\x00(.*)$/ or die;
+ $line =~ /^([ *|]+) (.+)\x00(.+)\x00(.+)\x00(.+)\x00(.*)$/ or die $line;
my $prefix = $1;
my $hash = colored($2, $color_hash);
my $date = POSIX::strftime('%Y-%m-%d', localtime($3));
# Color "graph".
$prefix =~ s/\|/colored($&, $color_graph)/ge;
- # Strip leading whitespace.
+ # Strip leading whitespace and braces.
$refs =~ s/^\s+//;
+ $refs =~ tr/()//d;
- printf "%s %s %s %s %s %s\n",
- $prefix, $hash, $date, $author, $message, $refs;
+ # Color refs.
+ $refs = join colored(', ', $color_ref_sep), map {
+ my $color;
+ if ($_ eq 'HEAD') {
+ $color = $color_ref_head;
+ } elsif (m{/}) {
+ $color = $color_ref_reference;
+ } else {
+ $color = $color_ref_branch;
+ }
+ colored($_, $color);
+ } split /, /, $refs;
+
+ if ($refs ne '') {
+ $refs = ' '
+ . colored('(', $color_ref_sep)
+ . $refs
+ . colored(')', $color_ref_sep);
+ }
+
+ printf "%s %s %s %s%s %s\n",
+ $prefix, $hash, $date, $author, $refs, $message;
}
close $fh or die $!;