From: Nazri Ramliy <ayiehere@gmail.com>
To: gitster@pobox.com, git@vger.kernel.org
Cc: Nazri Ramliy <ayiehere@gmail.com>
Subject: [PATCH 3/4] log --decorate: Colorize commit decorations
Date: Sat, 19 Jun 2010 09:37:35 +0800 [thread overview]
Message-ID: <1276911456-18466-3-git-send-email-ayiehere@gmail.com> (raw)
In-Reply-To: <7vtyp11k9x.fsf@alter.siamese.dyndns.org>
This makes the decorations stand out more and easier to distinguish
and spot because they are colored differently depending on their type.
Signed-off-by: Nazri Ramliy <ayiehere@gmail.com>
---
log-tree.c | 34 +++++++++++++++++++++++++++++++++-
1 files changed, 33 insertions(+), 1 deletions(-)
diff --git a/log-tree.c b/log-tree.c
index 2d804ee..25586cf 100644
--- a/log-tree.c
+++ b/log-tree.c
@@ -7,6 +7,7 @@
#include "reflog-walk.h"
#include "refs.h"
#include "string-list.h"
+#include "color.h"
struct decoration name_decoration = { "object names" };
@@ -19,6 +20,29 @@ enum decoration_type {
DECORATION_REF_HEAD,
};
+static char decoration_colors[][COLOR_MAXLEN] = {
+ GIT_COLOR_RESET,
+ GIT_COLOR_BOLD_GREEN, /* REF_LOCAL */
+ GIT_COLOR_BOLD_RED, /* REF_REMOTE */
+ GIT_COLOR_BOLD_YELLOW, /* REF_TAG */
+ GIT_COLOR_BOLD_MAGENTA, /* REF_STASH */
+ GIT_COLOR_BOLD_CYAN, /* REF_HEAD */
+};
+
+static const char *decorate_get_color(int decorate_use_color, enum decoration_type ix)
+{
+ if (decorate_use_color)
+ return decoration_colors[ix];
+ return "";
+}
+
+/*
+ * log-tree.c uses DIFF_OPT_TST for determining whether to use color
+ * for showing the commit sha1, use the same check for --decorate
+ */
+#define decorate_get_color_opt(o, ix) \
+ decorate_get_color(DIFF_OPT_TST((o), COLOR_DIFF), ix)
+
static void add_name_decoration(enum decoration_type type, const char *name, struct object *obj)
{
int nlen = strlen(name);
@@ -81,6 +105,10 @@ void show_decorations(struct rev_info *opt, struct commit *commit)
{
const char *prefix;
struct name_decoration *decoration;
+ const char *color_commit =
+ diff_get_color_opt(&opt->diffopt, DIFF_COMMIT);
+ const char *color_reset =
+ decorate_get_color_opt(&opt->diffopt, DECORATION_NONE);
if (opt->show_source && commit->util)
printf("\t%s", (char *) commit->util);
@@ -92,9 +120,13 @@ void show_decorations(struct rev_info *opt, struct commit *commit)
prefix = " (";
while (decoration) {
printf("%s", prefix);
+ fputs(decorate_get_color_opt(&opt->diffopt, decoration->type),
+ stdout);
if (decoration->type == DECORATION_REF_TAG)
- printf("tag: ");
+ fputs("tag: ", stdout);
printf("%s", decoration->name);
+ fputs(color_reset, stdout);
+ fputs(color_commit, stdout);
prefix = ", ";
decoration = decoration->next;
}
--
1.7.1.245.g7c42e.dirty
next prev parent reply other threads:[~2010-06-19 1:38 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-17 16:15 [PATCH] Colorize commit decorations Nazri Ramliy
2010-06-17 20:22 ` Junio C Hamano
2010-06-19 1:37 ` [PATCH 1/4] commit.h: add 'type' to struct name_decoration Nazri Ramliy
2010-06-22 4:04 ` Junio C Hamano
2010-06-23 0:43 ` [PATCH] Allow customizable commit decorations colors Nazri Ramliy
2010-06-24 0:21 ` Nazri Ramliy
2010-06-19 1:37 ` [PATCH 2/4] log-tree.c: Use struct name_decoration's type for classifying decoration Nazri Ramliy
2010-06-19 1:37 ` Nazri Ramliy [this message]
2010-06-19 1:37 ` [PATCH 4/4] Allow customizable coloring of commit decorations Nazri Ramliy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1276911456-18466-3-git-send-email-ayiehere@gmail.com \
--to=ayiehere@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).