format: create pretty.h file
Create header for pretty.c to make formatting interface more structured. This is a middle point, this file would be merged further with other files which contain formatting stuff. Signed-off-by: Olga Telezhnaia <olyatelezhnaya@gmail.com> Mentored-by: Christian Couder <christian.couder@gmail.com> Mentored by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Olga Telezhnaya committed
Dec 12, 2017 at 08:55 UTC
cf3947193c496132f653cc19ecb2771afd0acd1e
6 files changed
+92
-84
builtin/notes.c
+1
-1
@@ -12,7 +12,7 @@
12
#include "builtin.h"
13
#include "notes.h"
14
#include "blob.h"
15
-#include "commit.h"
15
+#include "pretty.h"
16
#include "refs.h"
17
#include "exec_cmd.h"
18
#include "run-command.h"
builtin/reset.c
+1
-1
@@ -12,7 +12,7 @@
12
#include "lockfile.h"
13
#include "tag.h"
14
#include "object.h"
15
-#include "commit.h"
15
+#include "pretty.h"
16
#include "run-command.h"
17
#include "refs.h"
18
#include "diff.h"
builtin/show-branch.c
+1
-1
@@ -1,6 +1,6 @@
1
#include "cache.h"
2
#include "config.h"
3
-#include "commit.h"
3
+#include "pretty.h"
4
#include "refs.h"
5
#include "builtin.h"
6
#include "color.h"
commit.h
+1
-80
@@ -7,6 +7,7 @@
7
#include "decorate.h"
8
#include "gpg-interface.h"
9
#include "string-list.h"
10
+#include "pretty.h"
11
12
struct commit_list {
13
struct commit *item;
@@ -121,93 +122,13 @@ struct commit_list *copy_commit_list(struct commit_list *list);
122
123
void free_commit_list(struct commit_list *list);
124
124
-/* Commit formats */
125
-enum cmit_fmt {
126
- CMIT_FMT_RAW,
127
- CMIT_FMT_MEDIUM,
128
- CMIT_FMT_DEFAULT = CMIT_FMT_MEDIUM,
129
- CMIT_FMT_SHORT,
130
- CMIT_FMT_FULL,
131
- CMIT_FMT_FULLER,
132
- CMIT_FMT_ONELINE,
133
- CMIT_FMT_EMAIL,
134
- CMIT_FMT_MBOXRD,
135
- CMIT_FMT_USERFORMAT,
136
-
137
- CMIT_FMT_UNSPECIFIED
138
-};
139
-
140
-static inline int cmit_fmt_is_mail(enum cmit_fmt fmt)
141
-{
142
- return (fmt == CMIT_FMT_EMAIL || fmt == CMIT_FMT_MBOXRD);
143
-}
144
-
125
struct rev_info; /* in revision.h, it circularly uses enum cmit_fmt */
126
147
-struct pretty_print_context {
148
- /*
149
- * Callers should tweak these to change the behavior of pp_* functions.
150
- */
151
- enum cmit_fmt fmt;
152
- int abbrev;
153
- const char *after_subject;
154
- int preserve_subject;
155
- struct date_mode date_mode;
156
- unsigned date_mode_explicit:1;
157
- int print_email_subject;
158
- int expand_tabs_in_log;
159
- int need_8bit_cte;
160
- char *notes_message;
161
- struct reflog_walk_info *reflog_info;
162
- struct rev_info *rev;
163
- const char *output_encoding;
164
- struct string_list *mailmap;
165
- int color;
166
- struct ident_split *from_ident;
167
-
168
- /*
169
- * Fields below here are manipulated internally by pp_* functions and
170
- * should not be counted on by callers.
171
- */
172
- struct string_list in_body_headers;
173
- int graph_width;
174
-};
175
-
176
-struct userformat_want {
177
- unsigned notes:1;
178
-};
179
-
127
extern int has_non_ascii(const char *text);
128
extern const char *logmsg_reencode(const struct commit *commit,
129
char **commit_encoding,
130
const char *output_encoding);
184
-extern void get_commit_format(const char *arg, struct rev_info *);
185
-extern const char *format_subject(struct strbuf *sb, const char *msg,
186
- const char *line_separator);
187
-extern void userformat_find_requirements(const char *fmt, struct userformat_want *w);
188
-extern int commit_format_is_empty(enum cmit_fmt);
131
extern const char *skip_blank_lines(const char *msg);
190
-extern void format_commit_message(const struct commit *commit,
191
- const char *format, struct strbuf *sb,
192
- const struct pretty_print_context *context);
193
-extern void pretty_print_commit(struct pretty_print_context *pp,
194
- const struct commit *commit,
195
- struct strbuf *sb);
196
-extern void pp_commit_easy(enum cmit_fmt fmt, const struct commit *commit,
197
- struct strbuf *sb);
198
-void pp_user_info(struct pretty_print_context *pp,
199
- const char *what, struct strbuf *sb,
200
- const char *line, const char *encoding);
201
-void pp_title_line(struct pretty_print_context *pp,
202
- const char **msg_p,
203
- struct strbuf *sb,
204
- const char *encoding,
205
- int need_8bit_cte);
206
-void pp_remainder(struct pretty_print_context *pp,
207
- const char **msg_p,
208
- struct strbuf *sb,
209
- int indent);
210
-
132
133
/** Removes the first commit from a list sorted by date, and adds all
134
* of its parents.
pretty.h
new
+87
@@ -0,0 +1,87 @@
1
+#ifndef PRETTY_H
2
+#define PRETTY_H
3
+
4
+struct commit;
5
+
6
+/* Commit formats */
7
+enum cmit_fmt {
8
+ CMIT_FMT_RAW,
9
+ CMIT_FMT_MEDIUM,
10
+ CMIT_FMT_DEFAULT = CMIT_FMT_MEDIUM,
11
+ CMIT_FMT_SHORT,
12
+ CMIT_FMT_FULL,
13
+ CMIT_FMT_FULLER,
14
+ CMIT_FMT_ONELINE,
15
+ CMIT_FMT_EMAIL,
16
+ CMIT_FMT_MBOXRD,
17
+ CMIT_FMT_USERFORMAT,
18
+
19
+ CMIT_FMT_UNSPECIFIED
20
+};
21
+
22
+struct pretty_print_context {
23
+ /*
24
+ * Callers should tweak these to change the behavior of pp_* functions.
25
+ */
26
+ enum cmit_fmt fmt;
27
+ int abbrev;
28
+ const char *after_subject;
29
+ int preserve_subject;
30
+ struct date_mode date_mode;
31
+ unsigned date_mode_explicit:1;
32
+ int print_email_subject;
33
+ int expand_tabs_in_log;
34
+ int need_8bit_cte;
35
+ char *notes_message;
36
+ struct reflog_walk_info *reflog_info;
37
+ struct rev_info *rev;
38
+ const char *output_encoding;
39
+ struct string_list *mailmap;
40
+ int color;
41
+ struct ident_split *from_ident;
42
+
43
+ /*
44
+ * Fields below here are manipulated internally by pp_* functions and
45
+ * should not be counted on by callers.
46
+ */
47
+ struct string_list in_body_headers;
48
+ int graph_width;
49
+};
50
+
51
+static inline int cmit_fmt_is_mail(enum cmit_fmt fmt)
52
+{
53
+ return (fmt == CMIT_FMT_EMAIL || fmt == CMIT_FMT_MBOXRD);
54
+}
55
+
56
+struct userformat_want {
57
+ unsigned notes:1;
58
+};
59
+
60
+void userformat_find_requirements(const char *fmt, struct userformat_want *w);
61
+void pp_commit_easy(enum cmit_fmt fmt, const struct commit *commit,
62
+ struct strbuf *sb);
63
+void pp_user_info(struct pretty_print_context *pp, const char *what,
64
+ struct strbuf *sb, const char *line,
65
+ const char *encoding);
66
+void pp_title_line(struct pretty_print_context *pp, const char **msg_p,
67
+ struct strbuf *sb, const char *encoding,
68
+ int need_8bit_cte);
69
+void pp_remainder(struct pretty_print_context *pp, const char **msg_p,
70
+ struct strbuf *sb, int indent);
71
+
72
+void format_commit_message(const struct commit *commit,
73
+ const char *format, struct strbuf *sb,
74
+ const struct pretty_print_context *context);
75
+
76
+void get_commit_format(const char *arg, struct rev_info *);
77
+
78
+void pretty_print_commit(struct pretty_print_context *pp,
79
+ const struct commit *commit,
80
+ struct strbuf *sb);
81
+
82
+const char *format_subject(struct strbuf *sb, const char *msg,
83
+ const char *line_separator);
84
+
85
+int commit_format_is_empty(enum cmit_fmt);
86
+
87
+#endif /* PRETTY_H */
revision.h
+1
-1
@@ -4,7 +4,7 @@
4
#include "parse-options.h"
5
#include "grep.h"
6
#include "notes.h"
7
-#include "commit.h"
7
+#include "pretty.h"
8
#include "diff.h"
9
10
/* Remember to update object flag allocation in object.h */