]>
Commit | Line | Data |
---|---|---|
7e29b825 NTND |
1 | #ifndef COLUMN_H |
2 | #define COLUMN_H | |
3 | ||
4 | #define COL_LAYOUT_MASK 0x000F | |
5 | #define COL_ENABLE_MASK 0x0030 /* always, never or auto */ | |
6 | #define COL_PARSEOPT 0x0040 /* --column is given from cmdline */ | |
3f8eccbe NTND |
7 | #define COL_DENSE 0x0080 /* Shrink columns when possible, |
8 | making space for more columns */ | |
7e29b825 NTND |
9 | |
10 | #define COL_DISABLED 0x0000 /* must be zero */ | |
11 | #define COL_ENABLED 0x0010 | |
12 | #define COL_AUTO 0x0020 | |
13 | ||
14 | #define COL_LAYOUT(c) ((c) & COL_LAYOUT_MASK) | |
077539d7 NTND |
15 | #define COL_COLUMN 0 /* Fill columns before rows */ |
16 | #define COL_ROW 1 /* Fill rows before columns */ | |
7e29b825 NTND |
17 | #define COL_PLAIN 15 /* one column */ |
18 | ||
19 | #define explicitly_enable_column(c) \ | |
20 | (((c) & COL_PARSEOPT) && column_active(c)) | |
21 | ||
22 | struct column_options { | |
23 | int width; | |
24 | int padding; | |
25 | const char *indent; | |
26 | const char *nl; | |
27 | }; | |
28 | ||
29 | struct option; | |
55454427 DL |
30 | int parseopt_column_callback(const struct option *, const char *, int); |
31 | int git_column_config(const char *var, const char *value, | |
ad6dad09 | 32 | const char *command, unsigned int *colopts); |
55454427 | 33 | int finalize_colopts(unsigned int *colopts, int stdout_is_tty); |
7e29b825 NTND |
34 | static inline int column_active(unsigned int colopts) |
35 | { | |
36 | return (colopts & COL_ENABLE_MASK) == COL_ENABLED; | |
37 | } | |
38 | ||
ef3ca954 | 39 | struct string_list; |
55454427 | 40 | void print_columns(const struct string_list *list, unsigned int colopts, |
ad6dad09 | 41 | const struct column_options *opts); |
7e29b825 | 42 | |
55454427 DL |
43 | int run_column_filter(int colopts, const struct column_options *); |
44 | int stop_column_filter(void); | |
b27004eb | 45 | |
7e29b825 | 46 | #endif |