git@vger.kernel.org list mirror (unofficial, one of many)
 help / color / mirror / code / Atom feed
d012add4e8a7329dc6e099c6c834e37b04be8c12 blob 4914 bytes (raw)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
 
#ifndef COLOR_H
#define COLOR_H

struct strbuf;

/*
 * The maximum length of ANSI color sequence we would generate:
 * - leading ESC '['            2
 * - attr + ';'                 2 * num_attr (e.g. "1;")
 * - no-attr + ';'              3 * num_attr (e.g. "22;")
 * - fg color + ';'             17 (e.g. "38;2;255;255;255;")
 * - bg color + ';'             17 (e.g. "48;2;255;255;255;")
 * - terminating 'm' NUL        2
 *
 * The above overcounts by one semicolon but it is close enough.
 *
 * The space for attributes is also slightly overallocated, as
 * the negation for some attributes is the same (e.g., nobold and nodim).
 *
 * We allocate space for 7 attributes.
 */
#define COLOR_MAXLEN 75

#define GIT_COLOR_NORMAL	""
#define GIT_COLOR_RESET		"\033[m"
#define GIT_COLOR_BOLD		"\033[1m"
#define GIT_COLOR_RED		"\033[31m"
#define GIT_COLOR_GREEN		"\033[32m"
#define GIT_COLOR_YELLOW	"\033[33m"
#define GIT_COLOR_BLUE		"\033[34m"
#define GIT_COLOR_MAGENTA	"\033[35m"
#define GIT_COLOR_CYAN		"\033[36m"
#define GIT_COLOR_BOLD_RED	"\033[1;31m"
#define GIT_COLOR_BOLD_GREEN	"\033[1;32m"
#define GIT_COLOR_BOLD_YELLOW	"\033[1;33m"
#define GIT_COLOR_BOLD_BLUE	"\033[1;34m"
#define GIT_COLOR_BOLD_MAGENTA	"\033[1;35m"
#define GIT_COLOR_BOLD_CYAN	"\033[1;36m"
#define GIT_COLOR_FAINT_RED	"\033[2;31m"
#define GIT_COLOR_FAINT_GREEN	"\033[2;32m"
#define GIT_COLOR_FAINT_YELLOW	"\033[2;33m"
#define GIT_COLOR_FAINT_BLUE	"\033[2;34m"
#define GIT_COLOR_FAINT_MAGENTA	"\033[2;35m"
#define GIT_COLOR_FAINT_CYAN	"\033[2;36m"
#define GIT_COLOR_BG_RED	"\033[41m"
#define GIT_COLOR_BG_GREEN	"\033[42m"
#define GIT_COLOR_BG_YELLOW	"\033[43m"
#define GIT_COLOR_BG_BLUE	"\033[44m"
#define GIT_COLOR_BG_MAGENTA	"\033[45m"
#define GIT_COLOR_BG_CYAN	"\033[46m"
#define GIT_COLOR_FAINT		"\033[2m"
#define GIT_COLOR_FAINT_ITALIC	"\033[2;3m"
#define GIT_COLOR_REVERSE	"\033[7m"
#define GIT_COLOR_UNDERLINE	"\033[4m"

/* A special value meaning "no color selected" */
#define GIT_COLOR_NIL "NIL"

/*
 * The first three are chosen to match common usage in the code, and what is
 * returned from git_config_colorbool. The "auto" value can be returned from
 * config_colorbool, and will be converted by want_color() into either 0 or 1.
 */
#define GIT_COLOR_UNKNOWN -1
#define GIT_COLOR_NEVER  0
#define GIT_COLOR_ALWAYS 1
#define GIT_COLOR_AUTO   2

/* A default list of colors to use for commit graphs and show-branch output */
extern const char *column_colors_ansi[];
extern const int column_colors_ansi_max;

/*
 * Generally the color code will lazily figure this out itself, but
 * this provides a mechanism for callers to override autodetection.
 */
extern int color_stdout_is_tty;

/*
 * Use the first one if you need only color config; the second is a convenience
 * if you are just going to change to git_default_config, too.
 */
int git_color_config(const char *var, const char *value, void *cb);
int git_color_default_config(const char *var, const char *value, void *cb);

/*
 * Parse a config option, which can be a boolean or one of
 * "never", "auto", "always". Return a constant of
 * GIT_COLOR_NEVER for "never" or negative boolean,
 * GIT_COLOR_ALWAYS for "always" or a positive boolean,
 * and GIT_COLOR_AUTO for "auto".
 */
int git_config_colorbool(const char *var, const char *value);

/*
 * Return a boolean whether to use color, where the argument 'var' is
 * one of GIT_COLOR_UNKNOWN, GIT_COLOR_NEVER, GIT_COLOR_ALWAYS, GIT_COLOR_AUTO.
 */
int want_color_fd(int fd, int var);
#define want_color(colorbool) want_color_fd(1, (colorbool))
#define want_color_stderr(colorbool) want_color_fd(2, (colorbool))

/*
 * Translate a Git color from 'value' into a string that the terminal can
 * interpret and store it into 'dst'. The Git color values are of the form
 * "foreground [background] [attr]" where fore- and background can be a color
 * name ("red"), a RGB code (#0xFF0000) or a 256-color-mode from the terminal.
 */
int color_parse(const char *value, char *dst);
int color_parse_mem(const char *value, int len, char *dst);

/*
 * Output the formatted string in the specified color (and then reset to normal
 * color so subsequent output is uncolored). Omits the color encapsulation if
 * `color` is NULL. The `color_fprintf_ln` prints a new line after resetting
 * the color.  The `color_print_strbuf` prints the contents of the given
 * strbuf (BUG: but only up to its first NUL character).
 */
__attribute__((format (printf, 3, 4)))
int color_fprintf(FILE *fp, const char *color, const char *fmt, ...);
__attribute__((format (printf, 3, 4)))
int color_fprintf_ln(FILE *fp, const char *color, const char *fmt, ...);
void color_print_strbuf(FILE *fp, const char *color, const struct strbuf *sb);

/*
 * Check if the given color is GIT_COLOR_NIL that means "no color selected".
 * The caller needs to replace the color with the actual desired color.
 */
int color_is_nil(const char *color);

#endif /* COLOR_H */
debug log:

solving d012add4e8 ...
found d012add4e8 in https://public-inbox.org/git/20210518010121.1350327-1-felipe.contreras@gmail.com/ ||
	https://public-inbox.org/git/20210518132056.2003135-1-felipe.contreras@gmail.com/ ||
	https://public-inbox.org/git/20210518204751.13836-1-felipe.contreras@gmail.com/ ||
	https://public-inbox.org/git/20210523054454.1188757-1-felipe.contreras@gmail.com/ ||
	https://public-inbox.org/git/20210626025040.104428-1-felipe.contreras@gmail.com/ ||
	https://public-inbox.org/git/patch-1.1-a950ef49e28-20210621T083254Z-avarab@gmail.com/
found 98894d6a17 in https://80x24.org/mirrors/git.git
preparing index
index prepared:
100644 98894d6a17563d7005a2ba3a1fb6070c06cbcefc	color.h

applying [1/6] https://public-inbox.org/git/20210518010121.1350327-1-felipe.contreras@gmail.com/
diff --git a/color.h b/color.h
index 98894d6a17..d012add4e8 100644

Checking patch color.h...
Applied patch color.h cleanly.

skipping https://public-inbox.org/git/20210518132056.2003135-1-felipe.contreras@gmail.com/ for d012add4e8
skipping https://public-inbox.org/git/20210518204751.13836-1-felipe.contreras@gmail.com/ for d012add4e8
skipping https://public-inbox.org/git/20210523054454.1188757-1-felipe.contreras@gmail.com/ for d012add4e8
skipping https://public-inbox.org/git/20210626025040.104428-1-felipe.contreras@gmail.com/ for d012add4e8
skipping https://public-inbox.org/git/patch-1.1-a950ef49e28-20210621T083254Z-avarab@gmail.com/ for d012add4e8
index at:
100644 d012add4e8a7329dc6e099c6c834e37b04be8c12	color.h

Code repositories for project(s) associated with this inbox:

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).