From: Matthew Ruffalo <mmr15@case.edu>
To: git@vger.kernel.org
Subject: [PATCH/RFC 2/3] diffstat: Use new diff.stat config values
Date: Sun, 28 Nov 2010 18:51:33 -0500 [thread overview]
Message-ID: <4CF2EB05.5090300@case.edu> (raw)
>From f3ca8d4222776fb38a2def4fb9c4691c09c1e0fd Mon Sep 17 00:00:00 2001
From: Matthew Ruffalo <matthew.ruffalo@case.edu>
Date: Sun, 28 Nov 2010 14:44:00 -0500
Subject: [PATCH 2/3] diffstat: Use new diff.stat config values
Previously, the diffstat width could only be specified with the
command-line options '--width' and '--name-width'. This patch adds
support for config file options 'diff.stat.width' and
'diff.stat.namewidth'.
The diffstat width values are obtained in this order (of increasing
precedence):
1. Compile-time defaults (80 width, 50 namewidth)
2. Standard git config mechanism
3. Command-line options
This required removing the diffstat options from 'struct diff_options'
and adding these values as static ints in diff.c. This preserves the
style of "config options are static ints, command-line options are
diff_options members". stat_opt now directly sets the global options.
Signed-off-by: Matthew Ruffalo <matthew.ruffalo@case.edu>
---
diff.c | 24 ++++++++++++++++++------
diff.h | 2 --
2 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/diff.c b/diff.c
index a151681..d2a3e44 100644
--- a/diff.c
+++ b/diff.c
@@ -31,6 +31,8 @@ static const char *external_diff_cmd_cfg;
int diff_auto_refresh_index = 1;
static int diff_mnemonic_prefix;
static int diff_no_prefix;
+static int diff_stat_width;
+static int diff_stat_name_width;
static struct diff_options default_diff_options;
static char diff_colors[][COLOR_MAXLEN] = {
@@ -148,6 +150,16 @@ int git_diff_basic_config(const char *var, const
char *value, void *cb)
if (!prefixcmp(var, "submodule."))
return parse_submodule_config_option(var, value);
+ if (!strcmp(var, "diff.stat.width")) {
+ diff_stat_width = git_config_int(var, value);
+ return 0;
+ }
+
+ if (!strcmp(var, "diff.stat.namewidth")) {
+ diff_stat_name_width = git_config_int(var, value);
+ return 0;
+ }
+
return git_color_default_config(var, value, cb);
}
@@ -1247,8 +1259,8 @@ static void show_stats(struct diffstat_t *data,
struct diff_options *options)
line_prefix = msg->buf;
}
- width = options->stat_width ? options->stat_width :
DIFF_STAT_DEFAULT_WIDTH;
- name_width = options->stat_name_width ? options->stat_name_width
: DIFF_STAT_DEFAULT_NAME_WIDTH;
+ width = diff_stat_width ? diff_stat_width : DIFF_STAT_DEFAULT_WIDTH;
+ name_width = diff_stat_name_width ? diff_stat_name_width :
DIFF_STAT_DEFAULT_NAME_WIDTH;
/* Sanity: give at least 5 columns to the graph,
* but leave at least 10 columns for the name.
@@ -3053,8 +3065,8 @@ static int stat_opt(struct diff_options *options,
const char **av)
{
const char *arg = av[0];
char *end;
- int width = options->stat_width;
- int name_width = options->stat_name_width;
+ int width = diff_stat_width;
+ int name_width = diff_stat_name_width;
int argcount = 1;
arg += strlen("--stat");
@@ -3094,8 +3106,8 @@ static int stat_opt(struct diff_options *options,
const char **av)
if (*end)
return 0;
options->output_format |= DIFF_FORMAT_DIFFSTAT;
- options->stat_name_width = name_width;
- options->stat_width = width;
+ diff_stat_name_width = name_width;
+ diff_stat_width = width;
return argcount;
}
diff --git a/diff.h b/diff.h
index 7b509c5..011f2ac 100644
--- a/diff.h
+++ b/diff.h
@@ -122,8 +122,6 @@ struct diff_options {
const char *stat_sep;
long xdl_opts;
- int stat_width;
- int stat_name_width;
const char *word_regex;
enum diff_words_type word_diff;
--
1.7.1
next reply other threads:[~2010-11-28 23:55 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-28 23:51 Matthew Ruffalo [this message]
2010-11-29 20:24 ` [PATCH/RFC 2/3] diffstat: Use new diff.stat config values Junio C Hamano
2010-12-08 2:44 ` [PATCH 1/3] diffstat width: #define defaults in diff.h mmr15
2010-12-08 2:44 ` [PATCH 2/3] diffstat: Use new diffstat config values mmr15
2010-12-09 5:54 ` Junio C Hamano
2010-12-08 2:44 ` [PATCH 3/3] Add documentation for new diffstat config options mmr15
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=4CF2EB05.5090300@case.edu \
--to=mmr15@case.edu \
--cc=git@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.