70 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
#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
 |