Skip to content

Commit

Permalink
Merge branch 'ml/pager'
Browse files Browse the repository at this point in the history
  • Loading branch information
Junio C Hamano committed Aug 1, 2006
2 parents 0225de8 + aa086eb commit 056d6d4
Show file tree
Hide file tree
Showing 7 changed files with 20 additions and 7 deletions.
4 changes: 4 additions & 0 deletions Documentation/config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,10 @@ apply.whitespace::
Tells `git-apply` how to handle whitespaces, in the same way
as the '--whitespace' option. See gitlink:git-apply[1].

pager.color::
A boolean to enable/disable colored output when the pager is in
use (default is true).

diff.color::
When true (or `always`), always use colors in patch.
When false (or `never`), never. When set to `auto`, use
Expand Down
1 change: 0 additions & 1 deletion builtin-log.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ static int cmd_log_walk(struct rev_info *rev)
struct commit *commit;

prepare_revision_walk(rev);
setup_pager();
while ((commit = get_revision(rev)) != NULL) {
log_tree_commit(rev, commit);
free(commit->buffer);
Expand Down
1 change: 1 addition & 0 deletions cache.h
Original file line number Diff line number Diff line change
Expand Up @@ -386,6 +386,7 @@ extern int receive_keep_pack(int fd[2], const char *me, int quiet, int);
/* pager.c */
extern void setup_pager(void);
extern int pager_in_use;
extern int pager_use_color;

/* base85 */
int decode_85(char *dst, char *line, int linelen);
Expand Down
5 changes: 5 additions & 0 deletions config.c
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,11 @@ int git_default_config(const char *var, const char *value)
return 0;
}

if (!strcmp(var, "pager.color")) {
pager_use_color = git_config_bool(var,value);
return 0;
}

/* Add other config variables here and to Documentation/config.txt. */
return 0;
}
Expand Down
2 changes: 1 addition & 1 deletion diff.c
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ int git_diff_ui_config(const char *var, const char *value)
diff_use_color_default = 1; /* bool */
else if (!strcasecmp(value, "auto")) {
diff_use_color_default = 0;
if (isatty(1) || pager_in_use) {
if (isatty(1) || (pager_in_use && pager_use_color)) {
char *term = getenv("TERM");
if (term && strcmp(term, "dumb"))
diff_use_color_default = 1;
Expand Down
1 change: 1 addition & 0 deletions environment.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ int shared_repository = PERM_UMASK;
const char *apply_default_whitespace = NULL;
int zlib_compression_level = Z_DEFAULT_COMPRESSION;
int pager_in_use;
int pager_use_color = 1;

static char *git_dir, *git_object_dir, *git_index_file, *git_refs_dir,
*git_graft_file;
Expand Down
13 changes: 8 additions & 5 deletions git.c
Original file line number Diff line number Diff line change
Expand Up @@ -211,20 +211,21 @@ static int handle_alias(int *argcp, const char ***argv)
const char git_version_string[] = GIT_VERSION;

#define NEEDS_PREFIX 1
#define USE_PAGER 2

static void handle_internal_command(int argc, const char **argv, char **envp)
{
const char *cmd = argv[0];
static struct cmd_struct {
const char *cmd;
int (*fn)(int, const char **, const char *);
int prefix;
int option;
} commands[] = {
{ "version", cmd_version },
{ "help", cmd_help },
{ "log", cmd_log, NEEDS_PREFIX },
{ "whatchanged", cmd_whatchanged, NEEDS_PREFIX },
{ "show", cmd_show, NEEDS_PREFIX },
{ "log", cmd_log, NEEDS_PREFIX | USE_PAGER },
{ "whatchanged", cmd_whatchanged, NEEDS_PREFIX | USE_PAGER },
{ "show", cmd_show, NEEDS_PREFIX | USE_PAGER },
{ "push", cmd_push },
{ "format-patch", cmd_format_patch, NEEDS_PREFIX },
{ "count-objects", cmd_count_objects },
Expand Down Expand Up @@ -275,8 +276,10 @@ static void handle_internal_command(int argc, const char **argv, char **envp)
continue;

prefix = NULL;
if (p->prefix)
if (p->option & NEEDS_PREFIX)
prefix = setup_git_directory();
if (p->option & USE_PAGER)
setup_pager();
if (getenv("GIT_TRACE")) {
int i;
fprintf(stderr, "trace: built-in: git");
Expand Down

0 comments on commit 056d6d4

Please sign in to comment.