| #ifndef IDENT_H | |
| #define IDENT_H | |
| #include "string-list.h" | |
| struct ident_split { | |
| const char *name_begin; | |
| const char *name_end; | |
| const char *mail_begin; | |
| const char *mail_end; | |
| const char *date_begin; | |
| const char *date_end; | |
| const char *tz_begin; | |
| const char *tz_end; | |
| }; | |
| #define IDENT_STRICT 1 | |
| #define IDENT_NO_DATE 2 | |
| #define IDENT_NO_NAME 4 | |
| enum want_ident { | |
| WANT_BLANK_IDENT, | |
| WANT_AUTHOR_IDENT, | |
| WANT_COMMITTER_IDENT | |
| }; | |
| const char *ident_default_name(void); | |
| const char *ident_default_email(void); | |
| /* | |
| * Prepare an ident to fall back on if the user didn't configure it. | |
| */ | |
| void prepare_fallback_ident(const char *name, const char *email); | |
| void reset_ident_date(void); | |
| /* | |
| * Signals an success with 0, but time part of the result may be NULL | |
| * if the input lacks timestamp and zone | |
| */ | |
| int split_ident_line(struct ident_split *, const char *, int); | |
| /* | |
| * Given a commit or tag object buffer and the commit or tag headers, replaces | |
| * the idents in the headers with their canonical versions using the mailmap mechanism. | |
| */ | |
| void apply_mailmap_to_header(struct strbuf *, const char **, struct string_list *); | |
| /* | |
| * Compare split idents for equality or strict ordering. Note that we | |
| * compare only the ident part of the line, ignoring any timestamp. | |
| * | |
| * Because there are two fields, we must choose one as the primary key; we | |
| * currently arbitrarily pick the email. | |
| */ | |
| int ident_cmp(const struct ident_split *, const struct ident_split *); | |
| const char *git_author_info(int); | |
| const char *git_committer_info(int); | |
| const char *fmt_ident(const char *name, const char *email, | |
| enum want_ident whose_ident, | |
| const char *date_str, int); | |
| const char *fmt_name(enum want_ident); | |
| int committer_ident_sufficiently_given(void); | |
| int author_ident_sufficiently_given(void); | |
| struct config_context; | |
| int git_ident_config(const char *, const char *, const struct config_context *, | |
| void *); | |
| #endif |