Browse Source
Code clean-up. * ot/pretty: format: create docs for pretty.h format: create pretty.h filemaint
![gitster@pobox.com](/assets/img/avatar_default.png)
6 changed files with 136 additions and 84 deletions
@ -0,0 +1,131 @@
@@ -0,0 +1,131 @@
|
||||
#ifndef PRETTY_H |
||||
#define PRETTY_H |
||||
|
||||
struct commit; |
||||
|
||||
/* Commit formats */ |
||||
enum cmit_fmt { |
||||
CMIT_FMT_RAW, |
||||
CMIT_FMT_MEDIUM, |
||||
CMIT_FMT_DEFAULT = CMIT_FMT_MEDIUM, |
||||
CMIT_FMT_SHORT, |
||||
CMIT_FMT_FULL, |
||||
CMIT_FMT_FULLER, |
||||
CMIT_FMT_ONELINE, |
||||
CMIT_FMT_EMAIL, |
||||
CMIT_FMT_MBOXRD, |
||||
CMIT_FMT_USERFORMAT, |
||||
|
||||
CMIT_FMT_UNSPECIFIED |
||||
}; |
||||
|
||||
struct pretty_print_context { |
||||
/* |
||||
* Callers should tweak these to change the behavior of pp_* functions. |
||||
*/ |
||||
enum cmit_fmt fmt; |
||||
int abbrev; |
||||
const char *after_subject; |
||||
int preserve_subject; |
||||
struct date_mode date_mode; |
||||
unsigned date_mode_explicit:1; |
||||
int print_email_subject; |
||||
int expand_tabs_in_log; |
||||
int need_8bit_cte; |
||||
char *notes_message; |
||||
struct reflog_walk_info *reflog_info; |
||||
struct rev_info *rev; |
||||
const char *output_encoding; |
||||
struct string_list *mailmap; |
||||
int color; |
||||
struct ident_split *from_ident; |
||||
|
||||
/* |
||||
* Fields below here are manipulated internally by pp_* functions and |
||||
* should not be counted on by callers. |
||||
*/ |
||||
struct string_list in_body_headers; |
||||
int graph_width; |
||||
}; |
||||
|
||||
/* Check whether commit format is mail. */ |
||||
static inline int cmit_fmt_is_mail(enum cmit_fmt fmt) |
||||
{ |
||||
return (fmt == CMIT_FMT_EMAIL || fmt == CMIT_FMT_MBOXRD); |
||||
} |
||||
|
||||
struct userformat_want { |
||||
unsigned notes:1; |
||||
}; |
||||
|
||||
/* Set the flag "w->notes" if there is placeholder %N in "fmt". */ |
||||
void userformat_find_requirements(const char *fmt, struct userformat_want *w); |
||||
|
||||
/* |
||||
* Shortcut for invoking pretty_print_commit if we do not have any context. |
||||
* Context would be set empty except "fmt". |
||||
*/ |
||||
void pp_commit_easy(enum cmit_fmt fmt, const struct commit *commit, |
||||
struct strbuf *sb); |
||||
|
||||
/* |
||||
* Get information about user and date from "line", format it and |
||||
* put it into "sb". |
||||
* Format of "line" must be readable for split_ident_line function. |
||||
* The resulting format is "what: name <email> date". |
||||
*/ |
||||
void pp_user_info(struct pretty_print_context *pp, const char *what, |
||||
struct strbuf *sb, const char *line, |
||||
const char *encoding); |
||||
|
||||
/* |
||||
* Format title line of commit message taken from "msg_p" and |
||||
* put it into "sb". |
||||
* First line of "msg_p" is also affected. |
||||
*/ |
||||
void pp_title_line(struct pretty_print_context *pp, const char **msg_p, |
||||
struct strbuf *sb, const char *encoding, |
||||
int need_8bit_cte); |
||||
|
||||
/* |
||||
* Get current state of commit message from "msg_p" and continue formatting |
||||
* by adding indentation and '>' signs. Put result into "sb". |
||||
*/ |
||||
void pp_remainder(struct pretty_print_context *pp, const char **msg_p, |
||||
struct strbuf *sb, int indent); |
||||
|
||||
/* |
||||
* Create a text message about commit using given "format" and "context". |
||||
* Put the result to "sb". |
||||
* Please use this function for custom formats. |
||||
*/ |
||||
void format_commit_message(const struct commit *commit, |
||||
const char *format, struct strbuf *sb, |
||||
const struct pretty_print_context *context); |
||||
|
||||
/* |
||||
* Parse given arguments from "arg", check it for correctness and |
||||
* fill struct rev_info. |
||||
*/ |
||||
void get_commit_format(const char *arg, struct rev_info *); |
||||
|
||||
/* |
||||
* Make a commit message with all rules from given "pp" |
||||
* and put it into "sb". |
||||
* Please use this function if you have a context (candidate for "pp"). |
||||
*/ |
||||
void pretty_print_commit(struct pretty_print_context *pp, |
||||
const struct commit *commit, |
||||
struct strbuf *sb); |
||||
|
||||
/* |
||||
* Change line breaks in "msg" to "line_separator" and put it into "sb". |
||||
* Return "msg" itself. |
||||
*/ |
||||
const char *format_subject(struct strbuf *sb, const char *msg, |
||||
const char *line_separator); |
||||
|
||||
/* Check if "cmit_fmt" will produce an empty output. */ |
||||
int commit_format_is_empty(enum cmit_fmt); |
||||
|
||||
#endif /* PRETTY_H */ |
Loading…
Reference in new issue