ident.h: move ident-related declarations out of cache.h

These functions were all defined in a separate ident.c already, so
create ident.h and move the declarations into that file.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Elijah Newren 2023-02-24 00:09:29 +00:00 committed by Junio C Hamano
parent b6c09c03eb
commit b5fa608180
11 changed files with 79 additions and 59 deletions

View File

@ -10,6 +10,7 @@
#include "builtin.h" #include "builtin.h"
#include "diff.h" #include "diff.h"
#include "hex.h" #include "hex.h"
#include "ident.h"
#include "parse-options.h" #include "parse-options.h"
#include "userdiff.h" #include "userdiff.h"
#include "streaming.h" #include "streaming.h"

View File

@ -1,5 +1,6 @@
#include "builtin.h" #include "builtin.h"
#include "config.h" #include "config.h"
#include "ident.h"
#include "mailmap.h" #include "mailmap.h"
#include "parse-options.h" #include "parse-options.h"
#include "string-list.h" #include "string-list.h"

View File

@ -2,6 +2,7 @@
#include "alloc.h" #include "alloc.h"
#include "config.h" #include "config.h"
#include "color.h" #include "color.h"
#include "ident.h"
#include "parse-options.h" #include "parse-options.h"
#include "urlmatch.h" #include "urlmatch.h"
#include "quote.h" #include "quote.h"

View File

@ -5,6 +5,7 @@
*/ */
#include "builtin.h" #include "builtin.h"
#include "config.h" #include "config.h"
#include "ident.h"
#include "refs.h" #include "refs.h"
static const char var_usage[] = "git var (-l | <variable>)"; static const char var_usage[] = "git var (-l | <variable>)";

58
cache.h
View File

@ -1445,65 +1445,10 @@ struct object *repo_peel_to_type(struct repository *r,
#define peel_to_type(name, namelen, obj, type) \ #define peel_to_type(name, namelen, obj, type) \
repo_peel_to_type(the_repository, name, namelen, obj, type) repo_peel_to_type(the_repository, name, namelen, obj, type)
#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 *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);
const char *ident_default_name(void);
const char *ident_default_email(void);
const char *git_editor(void); const char *git_editor(void);
const char *git_sequence_editor(void); const char *git_sequence_editor(void);
const char *git_pager(int stdout_is_tty); const char *git_pager(int stdout_is_tty);
int is_terminal_dumb(void); int is_terminal_dumb(void);
int git_ident_config(const char *, const char *, 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);
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;
};
/*
* 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 *);
struct cache_def { struct cache_def {
struct strbuf path; struct strbuf path;
@ -1570,9 +1515,6 @@ int update_server_info(int);
const char *get_log_output_encoding(void); const char *get_log_output_encoding(void);
const char *get_commit_output_encoding(void); const char *get_commit_output_encoding(void);
int committer_ident_sufficiently_given(void);
int author_ident_sufficiently_given(void);
extern const char *git_commit_encoding; extern const char *git_commit_encoding;
extern const char *git_log_output_encoding; extern const char *git_log_output_encoding;
extern const char *git_mailmap_file; extern const char *git_mailmap_file;

View File

@ -11,6 +11,7 @@
#include "branch.h" #include "branch.h"
#include "config.h" #include "config.h"
#include "environment.h" #include "environment.h"
#include "ident.h"
#include "repository.h" #include "repository.h"
#include "lockfile.h" #include "lockfile.h"
#include "exec-cmd.h" #include "exec-cmd.h"

View File

@ -4,6 +4,7 @@
#include "run-command.h" #include "run-command.h"
#include "strbuf.h" #include "strbuf.h"
#include "dir.h" #include "dir.h"
#include "ident.h"
#include "gpg-interface.h" #include "gpg-interface.h"
#include "sigchain.h" #include "sigchain.h"
#include "tempfile.h" #include "tempfile.h"

View File

@ -5,10 +5,13 @@
* *
* Copyright (C) 2005 Linus Torvalds * Copyright (C) 2005 Linus Torvalds
*/ */
#include "cache.h" #include "git-compat-util.h"
#include "ident.h"
#include "config.h" #include "config.h"
#include "date.h" #include "date.h"
#include "gettext.h"
#include "mailmap.h" #include "mailmap.h"
#include "strbuf.h"
static struct strbuf git_default_name = STRBUF_INIT; static struct strbuf git_default_name = STRBUF_INIT;
static struct strbuf git_default_email = STRBUF_INIT; static struct strbuf git_default_email = STRBUF_INIT;

67
ident.h Normal file
View File

@ -0,0 +1,67 @@
#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);
int git_ident_config(const char *, const char *, void *);
#endif

View File

@ -5,6 +5,7 @@
#include "refs-internal.h" #include "refs-internal.h"
#include "ref-cache.h" #include "ref-cache.h"
#include "packed-backend.h" #include "packed-backend.h"
#include "../ident.h"
#include "../iterator.h" #include "../iterator.h"
#include "../dir-iterator.h" #include "../dir-iterator.h"
#include "../lockfile.h" #include "../lockfile.h"

View File

@ -8,6 +8,7 @@
#include "pretty.h" #include "pretty.h"
#include "diff.h" #include "diff.h"
#include "commit-slab-decl.h" #include "commit-slab-decl.h"
#include "ident.h"
#include "list-objects-filter-options.h" #include "list-objects-filter-options.h"
/** /**