*.[ch]: remove extern from function declarations using spatch
There has been a push to remove extern from function declarations. Remove some instances of "extern" for function declarations which are caught by Coccinelle. Note that Coccinelle has some difficulty with processing functions with `__attribute__` or varargs so some `extern` declarations are left behind to be dealt with in a future patch. This was the Coccinelle patch used: @@ type T; identifier f; @@ - extern T f(...); and it was run with: $ git ls-files \*.{c,h} | grep -v ^compat/ | xargs spatch --sp-file contrib/coccinelle/noextern.cocci --in-place Files under `compat/` are intentionally excluded as some are directly copied from external sources and we should avoid churning them as much as possible. Signed-off-by: Denton Liu <liu.denton@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
ffac537e6c
commit
554544276a
2
advice.h
2
advice.h
@ -31,7 +31,7 @@ int git_default_advice_config(const char *var, const char *value);
|
|||||||
__attribute__((format (printf, 1, 2)))
|
__attribute__((format (printf, 1, 2)))
|
||||||
void advise(const char *advice, ...);
|
void advise(const char *advice, ...);
|
||||||
int error_resolve_conflict(const char *me);
|
int error_resolve_conflict(const char *me);
|
||||||
extern void NORETURN die_resolve_conflict(const char *me);
|
void NORETURN die_resolve_conflict(const char *me);
|
||||||
void NORETURN die_conclude_merge(void);
|
void NORETURN die_conclude_merge(void);
|
||||||
void detach_advice(const char *new_name);
|
void detach_advice(const char *new_name);
|
||||||
|
|
||||||
|
14
archive.h
14
archive.h
@ -23,7 +23,7 @@ struct archiver_args {
|
|||||||
|
|
||||||
/* main api */
|
/* main api */
|
||||||
|
|
||||||
extern int write_archive(int argc, const char **argv, const char *prefix,
|
int write_archive(int argc, const char **argv, const char *prefix,
|
||||||
struct repository *repo,
|
struct repository *repo,
|
||||||
const char *name_hint, int remote);
|
const char *name_hint, int remote);
|
||||||
|
|
||||||
@ -39,19 +39,19 @@ struct archiver {
|
|||||||
unsigned flags;
|
unsigned flags;
|
||||||
void *data;
|
void *data;
|
||||||
};
|
};
|
||||||
extern void register_archiver(struct archiver *);
|
void register_archiver(struct archiver *);
|
||||||
|
|
||||||
extern void init_tar_archiver(void);
|
void init_tar_archiver(void);
|
||||||
extern void init_zip_archiver(void);
|
void init_zip_archiver(void);
|
||||||
extern void init_archivers(void);
|
void init_archivers(void);
|
||||||
|
|
||||||
typedef int (*write_archive_entry_fn_t)(struct archiver_args *args,
|
typedef int (*write_archive_entry_fn_t)(struct archiver_args *args,
|
||||||
const struct object_id *oid,
|
const struct object_id *oid,
|
||||||
const char *path, size_t pathlen,
|
const char *path, size_t pathlen,
|
||||||
unsigned int mode);
|
unsigned int mode);
|
||||||
|
|
||||||
extern int write_archive_entries(struct archiver_args *args, write_archive_entry_fn_t write_entry);
|
int write_archive_entries(struct archiver_args *args, write_archive_entry_fn_t write_entry);
|
||||||
extern void *object_file_to_archive(const struct archiver_args *args,
|
void *object_file_to_archive(const struct archiver_args *args,
|
||||||
const char *path, const struct object_id *oid,
|
const char *path, const struct object_id *oid,
|
||||||
unsigned int mode, enum object_type *type,
|
unsigned int mode, enum object_type *type,
|
||||||
unsigned long *sizep);
|
unsigned long *sizep);
|
||||||
|
12
bisect.h
12
bisect.h
@ -11,10 +11,10 @@ struct repository;
|
|||||||
* Otherwise, it will be either all non-SAMETREE commits or the single
|
* Otherwise, it will be either all non-SAMETREE commits or the single
|
||||||
* best commit, as chosen by `find_all`.
|
* best commit, as chosen by `find_all`.
|
||||||
*/
|
*/
|
||||||
extern void find_bisection(struct commit_list **list, int *reaches, int *all,
|
void find_bisection(struct commit_list **list, int *reaches, int *all,
|
||||||
int find_all);
|
int find_all);
|
||||||
|
|
||||||
extern struct commit_list *filter_skipped(struct commit_list *list,
|
struct commit_list *filter_skipped(struct commit_list *list,
|
||||||
struct commit_list **tried,
|
struct commit_list **tried,
|
||||||
int show_all,
|
int show_all,
|
||||||
int *count,
|
int *count,
|
||||||
@ -31,14 +31,14 @@ struct rev_list_info {
|
|||||||
const char *header_prefix;
|
const char *header_prefix;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern int bisect_next_all(struct repository *r,
|
int bisect_next_all(struct repository *r,
|
||||||
const char *prefix,
|
const char *prefix,
|
||||||
int no_checkout);
|
int no_checkout);
|
||||||
|
|
||||||
extern int estimate_bisect_steps(int all);
|
int estimate_bisect_steps(int all);
|
||||||
|
|
||||||
extern void read_bisect_terms(const char **bad, const char **good);
|
void read_bisect_terms(const char **bad, const char **good);
|
||||||
|
|
||||||
extern int bisect_clean_state(void);
|
int bisect_clean_state(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
2
blame.h
2
blame.h
@ -177,6 +177,6 @@ struct blame_entry *blame_entry_prepend(struct blame_entry *head,
|
|||||||
long start, long end,
|
long start, long end,
|
||||||
struct blame_origin *o);
|
struct blame_origin *o);
|
||||||
|
|
||||||
extern struct blame_origin *get_blame_suspects(struct commit *commit);
|
struct blame_origin *get_blame_suspects(struct commit *commit);
|
||||||
|
|
||||||
#endif /* BLAME_H */
|
#endif /* BLAME_H */
|
||||||
|
12
branch.h
12
branch.h
@ -50,7 +50,7 @@ void create_branch(struct repository *r,
|
|||||||
* Return 1 if the named branch already exists; return 0 otherwise.
|
* Return 1 if the named branch already exists; return 0 otherwise.
|
||||||
* Fill ref with the full refname for the branch.
|
* Fill ref with the full refname for the branch.
|
||||||
*/
|
*/
|
||||||
extern int validate_branchname(const char *name, struct strbuf *ref);
|
int validate_branchname(const char *name, struct strbuf *ref);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check if a branch 'name' can be created as a new branch; die otherwise.
|
* Check if a branch 'name' can be created as a new branch; die otherwise.
|
||||||
@ -58,7 +58,7 @@ extern int validate_branchname(const char *name, struct strbuf *ref);
|
|||||||
* Return 1 if the named branch already exists; return 0 otherwise.
|
* Return 1 if the named branch already exists; return 0 otherwise.
|
||||||
* Fill ref with the full refname for the branch.
|
* Fill ref with the full refname for the branch.
|
||||||
*/
|
*/
|
||||||
extern int validate_new_branchname(const char *name, struct strbuf *ref, int force);
|
int validate_new_branchname(const char *name, struct strbuf *ref, int force);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Remove information about the state of working on the current
|
* Remove information about the state of working on the current
|
||||||
@ -72,26 +72,26 @@ void remove_branch_state(struct repository *r);
|
|||||||
* Returns 0 on success.
|
* Returns 0 on success.
|
||||||
*/
|
*/
|
||||||
#define BRANCH_CONFIG_VERBOSE 01
|
#define BRANCH_CONFIG_VERBOSE 01
|
||||||
extern int install_branch_config(int flag, const char *local, const char *origin, const char *remote);
|
int install_branch_config(int flag, const char *local, const char *origin, const char *remote);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Read branch description
|
* Read branch description
|
||||||
*/
|
*/
|
||||||
extern int read_branch_desc(struct strbuf *, const char *branch_name);
|
int read_branch_desc(struct strbuf *, const char *branch_name);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check if a branch is checked out in the main worktree or any linked
|
* Check if a branch is checked out in the main worktree or any linked
|
||||||
* worktree and die (with a message describing its checkout location) if
|
* worktree and die (with a message describing its checkout location) if
|
||||||
* it is.
|
* it is.
|
||||||
*/
|
*/
|
||||||
extern void die_if_checked_out(const char *branch, int ignore_current_worktree);
|
void die_if_checked_out(const char *branch, int ignore_current_worktree);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Update all per-worktree HEADs pointing at the old ref to point the new ref.
|
* Update all per-worktree HEADs pointing at the old ref to point the new ref.
|
||||||
* This will be used when renaming a branch. Returns 0 if successful, non-zero
|
* This will be used when renaming a branch. Returns 0 if successful, non-zero
|
||||||
* otherwise.
|
* otherwise.
|
||||||
*/
|
*/
|
||||||
extern int replace_each_worktree_head_symref(const char *oldref, const char *newref,
|
int replace_each_worktree_head_symref(const char *oldref, const char *newref,
|
||||||
const char *logmsg);
|
const char *logmsg);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
252
builtin.h
252
builtin.h
@ -102,7 +102,7 @@ extern const char git_more_info_string[];
|
|||||||
#define PRUNE_PACKED_DRY_RUN 01
|
#define PRUNE_PACKED_DRY_RUN 01
|
||||||
#define PRUNE_PACKED_VERBOSE 02
|
#define PRUNE_PACKED_VERBOSE 02
|
||||||
|
|
||||||
extern void prune_packed_objects(int);
|
void prune_packed_objects(int);
|
||||||
|
|
||||||
struct fmt_merge_msg_opts {
|
struct fmt_merge_msg_opts {
|
||||||
unsigned add_title:1,
|
unsigned add_title:1,
|
||||||
@ -110,7 +110,7 @@ struct fmt_merge_msg_opts {
|
|||||||
int shortlog_len;
|
int shortlog_len;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern int fmt_merge_msg(struct strbuf *in, struct strbuf *out,
|
int fmt_merge_msg(struct strbuf *in, struct strbuf *out,
|
||||||
struct fmt_merge_msg_opts *);
|
struct fmt_merge_msg_opts *);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -123,131 +123,131 @@ extern int fmt_merge_msg(struct strbuf *in, struct strbuf *out,
|
|||||||
* You should most likely use a default of 0 or 1. "Punt" (-1) could be useful
|
* You should most likely use a default of 0 or 1. "Punt" (-1) could be useful
|
||||||
* to be able to fall back to some historical compatibility name.
|
* to be able to fall back to some historical compatibility name.
|
||||||
*/
|
*/
|
||||||
extern void setup_auto_pager(const char *cmd, int def);
|
void setup_auto_pager(const char *cmd, int def);
|
||||||
|
|
||||||
extern int is_builtin(const char *s);
|
int is_builtin(const char *s);
|
||||||
|
|
||||||
extern int cmd_add(int argc, const char **argv, const char *prefix);
|
int cmd_add(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_am(int argc, const char **argv, const char *prefix);
|
int cmd_am(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_annotate(int argc, const char **argv, const char *prefix);
|
int cmd_annotate(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_apply(int argc, const char **argv, const char *prefix);
|
int cmd_apply(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_archive(int argc, const char **argv, const char *prefix);
|
int cmd_archive(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_bisect__helper(int argc, const char **argv, const char *prefix);
|
int cmd_bisect__helper(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_blame(int argc, const char **argv, const char *prefix);
|
int cmd_blame(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_branch(int argc, const char **argv, const char *prefix);
|
int cmd_branch(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_bundle(int argc, const char **argv, const char *prefix);
|
int cmd_bundle(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_cat_file(int argc, const char **argv, const char *prefix);
|
int cmd_cat_file(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_checkout(int argc, const char **argv, const char *prefix);
|
int cmd_checkout(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_checkout_index(int argc, const char **argv, const char *prefix);
|
int cmd_checkout_index(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_check_attr(int argc, const char **argv, const char *prefix);
|
int cmd_check_attr(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_check_ignore(int argc, const char **argv, const char *prefix);
|
int cmd_check_ignore(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_check_mailmap(int argc, const char **argv, const char *prefix);
|
int cmd_check_mailmap(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_check_ref_format(int argc, const char **argv, const char *prefix);
|
int cmd_check_ref_format(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_cherry(int argc, const char **argv, const char *prefix);
|
int cmd_cherry(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_cherry_pick(int argc, const char **argv, const char *prefix);
|
int cmd_cherry_pick(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_clone(int argc, const char **argv, const char *prefix);
|
int cmd_clone(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_clean(int argc, const char **argv, const char *prefix);
|
int cmd_clean(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_column(int argc, const char **argv, const char *prefix);
|
int cmd_column(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_commit(int argc, const char **argv, const char *prefix);
|
int cmd_commit(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_commit_graph(int argc, const char **argv, const char *prefix);
|
int cmd_commit_graph(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_commit_tree(int argc, const char **argv, const char *prefix);
|
int cmd_commit_tree(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_config(int argc, const char **argv, const char *prefix);
|
int cmd_config(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_count_objects(int argc, const char **argv, const char *prefix);
|
int cmd_count_objects(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_credential(int argc, const char **argv, const char *prefix);
|
int cmd_credential(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_describe(int argc, const char **argv, const char *prefix);
|
int cmd_describe(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_diff_files(int argc, const char **argv, const char *prefix);
|
int cmd_diff_files(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_diff_index(int argc, const char **argv, const char *prefix);
|
int cmd_diff_index(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_diff(int argc, const char **argv, const char *prefix);
|
int cmd_diff(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_diff_tree(int argc, const char **argv, const char *prefix);
|
int cmd_diff_tree(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_difftool(int argc, const char **argv, const char *prefix);
|
int cmd_difftool(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_fast_export(int argc, const char **argv, const char *prefix);
|
int cmd_fast_export(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_fetch(int argc, const char **argv, const char *prefix);
|
int cmd_fetch(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_fetch_pack(int argc, const char **argv, const char *prefix);
|
int cmd_fetch_pack(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_fmt_merge_msg(int argc, const char **argv, const char *prefix);
|
int cmd_fmt_merge_msg(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_for_each_ref(int argc, const char **argv, const char *prefix);
|
int cmd_for_each_ref(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_format_patch(int argc, const char **argv, const char *prefix);
|
int cmd_format_patch(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_fsck(int argc, const char **argv, const char *prefix);
|
int cmd_fsck(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_gc(int argc, const char **argv, const char *prefix);
|
int cmd_gc(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_get_tar_commit_id(int argc, const char **argv, const char *prefix);
|
int cmd_get_tar_commit_id(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_grep(int argc, const char **argv, const char *prefix);
|
int cmd_grep(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_hash_object(int argc, const char **argv, const char *prefix);
|
int cmd_hash_object(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_help(int argc, const char **argv, const char *prefix);
|
int cmd_help(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_index_pack(int argc, const char **argv, const char *prefix);
|
int cmd_index_pack(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_init_db(int argc, const char **argv, const char *prefix);
|
int cmd_init_db(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_interpret_trailers(int argc, const char **argv, const char *prefix);
|
int cmd_interpret_trailers(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_log(int argc, const char **argv, const char *prefix);
|
int cmd_log(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_log_reflog(int argc, const char **argv, const char *prefix);
|
int cmd_log_reflog(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_ls_files(int argc, const char **argv, const char *prefix);
|
int cmd_ls_files(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_ls_tree(int argc, const char **argv, const char *prefix);
|
int cmd_ls_tree(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_ls_remote(int argc, const char **argv, const char *prefix);
|
int cmd_ls_remote(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_mailinfo(int argc, const char **argv, const char *prefix);
|
int cmd_mailinfo(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_mailsplit(int argc, const char **argv, const char *prefix);
|
int cmd_mailsplit(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_merge(int argc, const char **argv, const char *prefix);
|
int cmd_merge(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_merge_base(int argc, const char **argv, const char *prefix);
|
int cmd_merge_base(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_merge_index(int argc, const char **argv, const char *prefix);
|
int cmd_merge_index(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_merge_ours(int argc, const char **argv, const char *prefix);
|
int cmd_merge_ours(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_merge_file(int argc, const char **argv, const char *prefix);
|
int cmd_merge_file(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_merge_recursive(int argc, const char **argv, const char *prefix);
|
int cmd_merge_recursive(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_merge_tree(int argc, const char **argv, const char *prefix);
|
int cmd_merge_tree(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_mktag(int argc, const char **argv, const char *prefix);
|
int cmd_mktag(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_mktree(int argc, const char **argv, const char *prefix);
|
int cmd_mktree(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_multi_pack_index(int argc, const char **argv, const char *prefix);
|
int cmd_multi_pack_index(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_mv(int argc, const char **argv, const char *prefix);
|
int cmd_mv(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_name_rev(int argc, const char **argv, const char *prefix);
|
int cmd_name_rev(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_notes(int argc, const char **argv, const char *prefix);
|
int cmd_notes(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_pack_objects(int argc, const char **argv, const char *prefix);
|
int cmd_pack_objects(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_pack_redundant(int argc, const char **argv, const char *prefix);
|
int cmd_pack_redundant(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_patch_id(int argc, const char **argv, const char *prefix);
|
int cmd_patch_id(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_prune(int argc, const char **argv, const char *prefix);
|
int cmd_prune(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_prune_packed(int argc, const char **argv, const char *prefix);
|
int cmd_prune_packed(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_pull(int argc, const char **argv, const char *prefix);
|
int cmd_pull(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_push(int argc, const char **argv, const char *prefix);
|
int cmd_push(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_range_diff(int argc, const char **argv, const char *prefix);
|
int cmd_range_diff(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_read_tree(int argc, const char **argv, const char *prefix);
|
int cmd_read_tree(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_rebase(int argc, const char **argv, const char *prefix);
|
int cmd_rebase(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_rebase__interactive(int argc, const char **argv, const char *prefix);
|
int cmd_rebase__interactive(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_receive_pack(int argc, const char **argv, const char *prefix);
|
int cmd_receive_pack(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_reflog(int argc, const char **argv, const char *prefix);
|
int cmd_reflog(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_remote(int argc, const char **argv, const char *prefix);
|
int cmd_remote(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_remote_ext(int argc, const char **argv, const char *prefix);
|
int cmd_remote_ext(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_remote_fd(int argc, const char **argv, const char *prefix);
|
int cmd_remote_fd(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_repack(int argc, const char **argv, const char *prefix);
|
int cmd_repack(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_rerere(int argc, const char **argv, const char *prefix);
|
int cmd_rerere(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_reset(int argc, const char **argv, const char *prefix);
|
int cmd_reset(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_rev_list(int argc, const char **argv, const char *prefix);
|
int cmd_rev_list(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_rev_parse(int argc, const char **argv, const char *prefix);
|
int cmd_rev_parse(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_revert(int argc, const char **argv, const char *prefix);
|
int cmd_revert(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_rm(int argc, const char **argv, const char *prefix);
|
int cmd_rm(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_send_pack(int argc, const char **argv, const char *prefix);
|
int cmd_send_pack(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_serve(int argc, const char **argv, const char *prefix);
|
int cmd_serve(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_shortlog(int argc, const char **argv, const char *prefix);
|
int cmd_shortlog(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_show(int argc, const char **argv, const char *prefix);
|
int cmd_show(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_show_branch(int argc, const char **argv, const char *prefix);
|
int cmd_show_branch(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_show_index(int argc, const char **argv, const char *prefix);
|
int cmd_show_index(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_status(int argc, const char **argv, const char *prefix);
|
int cmd_status(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_stripspace(int argc, const char **argv, const char *prefix);
|
int cmd_stripspace(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_submodule__helper(int argc, const char **argv, const char *prefix);
|
int cmd_submodule__helper(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_symbolic_ref(int argc, const char **argv, const char *prefix);
|
int cmd_symbolic_ref(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_tag(int argc, const char **argv, const char *prefix);
|
int cmd_tag(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_tar_tree(int argc, const char **argv, const char *prefix);
|
int cmd_tar_tree(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_unpack_file(int argc, const char **argv, const char *prefix);
|
int cmd_unpack_file(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_unpack_objects(int argc, const char **argv, const char *prefix);
|
int cmd_unpack_objects(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_update_index(int argc, const char **argv, const char *prefix);
|
int cmd_update_index(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_update_ref(int argc, const char **argv, const char *prefix);
|
int cmd_update_ref(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_update_server_info(int argc, const char **argv, const char *prefix);
|
int cmd_update_server_info(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_upload_archive(int argc, const char **argv, const char *prefix);
|
int cmd_upload_archive(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_upload_archive_writer(int argc, const char **argv, const char *prefix);
|
int cmd_upload_archive_writer(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_upload_pack(int argc, const char **argv, const char *prefix);
|
int cmd_upload_pack(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_var(int argc, const char **argv, const char *prefix);
|
int cmd_var(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_verify_commit(int argc, const char **argv, const char *prefix);
|
int cmd_verify_commit(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_verify_tag(int argc, const char **argv, const char *prefix);
|
int cmd_verify_tag(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_version(int argc, const char **argv, const char *prefix);
|
int cmd_version(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_whatchanged(int argc, const char **argv, const char *prefix);
|
int cmd_whatchanged(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_worktree(int argc, const char **argv, const char *prefix);
|
int cmd_worktree(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_write_tree(int argc, const char **argv, const char *prefix);
|
int cmd_write_tree(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_verify_pack(int argc, const char **argv, const char *prefix);
|
int cmd_verify_pack(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_show_ref(int argc, const char **argv, const char *prefix);
|
int cmd_show_ref(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_pack_refs(int argc, const char **argv, const char *prefix);
|
int cmd_pack_refs(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_replace(int argc, const char **argv, const char *prefix);
|
int cmd_replace(int argc, const char **argv, const char *prefix);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -6,11 +6,11 @@
|
|||||||
|
|
||||||
#include "cache.h"
|
#include "cache.h"
|
||||||
|
|
||||||
extern int index_bulk_checkin(struct object_id *oid,
|
int index_bulk_checkin(struct object_id *oid,
|
||||||
int fd, size_t size, enum object_type type,
|
int fd, size_t size, enum object_type type,
|
||||||
const char *path, unsigned flags);
|
const char *path, unsigned flags);
|
||||||
|
|
||||||
extern void plug_bulk_checkin(void);
|
void plug_bulk_checkin(void);
|
||||||
extern void unplug_bulk_checkin(void);
|
void unplug_bulk_checkin(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
340
cache.h
340
cache.h
@ -350,10 +350,10 @@ struct index_state {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* Name hashing */
|
/* Name hashing */
|
||||||
extern int test_lazy_init_name_hash(struct index_state *istate, int try_threaded);
|
int test_lazy_init_name_hash(struct index_state *istate, int try_threaded);
|
||||||
extern void add_name_hash(struct index_state *istate, struct cache_entry *ce);
|
void add_name_hash(struct index_state *istate, struct cache_entry *ce);
|
||||||
extern void remove_name_hash(struct index_state *istate, struct cache_entry *ce);
|
void remove_name_hash(struct index_state *istate, struct cache_entry *ce);
|
||||||
extern void free_name_hash(struct index_state *istate);
|
void free_name_hash(struct index_state *istate);
|
||||||
|
|
||||||
|
|
||||||
/* Cache entry creation and cleanup */
|
/* Cache entry creation and cleanup */
|
||||||
@ -543,7 +543,7 @@ static inline enum object_type object_type(unsigned int mode)
|
|||||||
*/
|
*/
|
||||||
extern const char * const local_repo_env[];
|
extern const char * const local_repo_env[];
|
||||||
|
|
||||||
extern void setup_git_env(const char *git_dir);
|
void setup_git_env(const char *git_dir);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Returns true iff we have a configured git repository (either via
|
* Returns true iff we have a configured git repository (either via
|
||||||
@ -552,29 +552,29 @@ extern void setup_git_env(const char *git_dir);
|
|||||||
int have_git_dir(void);
|
int have_git_dir(void);
|
||||||
|
|
||||||
extern int is_bare_repository_cfg;
|
extern int is_bare_repository_cfg;
|
||||||
extern int is_bare_repository(void);
|
int is_bare_repository(void);
|
||||||
extern int is_inside_git_dir(void);
|
int is_inside_git_dir(void);
|
||||||
extern char *git_work_tree_cfg;
|
extern char *git_work_tree_cfg;
|
||||||
extern int is_inside_work_tree(void);
|
int is_inside_work_tree(void);
|
||||||
extern const char *get_git_dir(void);
|
const char *get_git_dir(void);
|
||||||
extern const char *get_git_common_dir(void);
|
const char *get_git_common_dir(void);
|
||||||
extern char *get_object_directory(void);
|
char *get_object_directory(void);
|
||||||
extern char *get_index_file(void);
|
char *get_index_file(void);
|
||||||
extern char *get_graft_file(struct repository *r);
|
char *get_graft_file(struct repository *r);
|
||||||
extern void set_git_dir(const char *path);
|
void set_git_dir(const char *path);
|
||||||
extern int get_common_dir_noenv(struct strbuf *sb, const char *gitdir);
|
int get_common_dir_noenv(struct strbuf *sb, const char *gitdir);
|
||||||
extern int get_common_dir(struct strbuf *sb, const char *gitdir);
|
int get_common_dir(struct strbuf *sb, const char *gitdir);
|
||||||
extern const char *get_git_namespace(void);
|
const char *get_git_namespace(void);
|
||||||
extern const char *strip_namespace(const char *namespaced_ref);
|
const char *strip_namespace(const char *namespaced_ref);
|
||||||
extern const char *get_super_prefix(void);
|
const char *get_super_prefix(void);
|
||||||
extern const char *get_git_work_tree(void);
|
const char *get_git_work_tree(void);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Return true if the given path is a git directory; note that this _just_
|
* Return true if the given path is a git directory; note that this _just_
|
||||||
* looks at the directory itself. If you want to know whether "foo/.git"
|
* looks at the directory itself. If you want to know whether "foo/.git"
|
||||||
* is a repository, you must feed that path, not just "foo".
|
* is a repository, you must feed that path, not just "foo".
|
||||||
*/
|
*/
|
||||||
extern int is_git_directory(const char *path);
|
int is_git_directory(const char *path);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Return 1 if the given path is the root of a git repository or
|
* Return 1 if the given path is the root of a git repository or
|
||||||
@ -586,7 +586,7 @@ extern int is_git_directory(const char *path);
|
|||||||
* as we usually consider sub-repos precious, and would prefer to err on the
|
* as we usually consider sub-repos precious, and would prefer to err on the
|
||||||
* side of not disrupting or deleting them.
|
* side of not disrupting or deleting them.
|
||||||
*/
|
*/
|
||||||
extern int is_nonbare_repository_dir(struct strbuf *path);
|
int is_nonbare_repository_dir(struct strbuf *path);
|
||||||
|
|
||||||
#define READ_GITFILE_ERR_STAT_FAILED 1
|
#define READ_GITFILE_ERR_STAT_FAILED 1
|
||||||
#define READ_GITFILE_ERR_NOT_A_FILE 2
|
#define READ_GITFILE_ERR_NOT_A_FILE 2
|
||||||
@ -596,17 +596,17 @@ extern int is_nonbare_repository_dir(struct strbuf *path);
|
|||||||
#define READ_GITFILE_ERR_NO_PATH 6
|
#define READ_GITFILE_ERR_NO_PATH 6
|
||||||
#define READ_GITFILE_ERR_NOT_A_REPO 7
|
#define READ_GITFILE_ERR_NOT_A_REPO 7
|
||||||
#define READ_GITFILE_ERR_TOO_LARGE 8
|
#define READ_GITFILE_ERR_TOO_LARGE 8
|
||||||
extern void read_gitfile_error_die(int error_code, const char *path, const char *dir);
|
void read_gitfile_error_die(int error_code, const char *path, const char *dir);
|
||||||
extern const char *read_gitfile_gently(const char *path, int *return_error_code);
|
const char *read_gitfile_gently(const char *path, int *return_error_code);
|
||||||
#define read_gitfile(path) read_gitfile_gently((path), NULL)
|
#define read_gitfile(path) read_gitfile_gently((path), NULL)
|
||||||
extern const char *resolve_gitdir_gently(const char *suspect, int *return_error_code);
|
const char *resolve_gitdir_gently(const char *suspect, int *return_error_code);
|
||||||
#define resolve_gitdir(path) resolve_gitdir_gently((path), NULL)
|
#define resolve_gitdir(path) resolve_gitdir_gently((path), NULL)
|
||||||
|
|
||||||
extern void set_git_work_tree(const char *tree);
|
void set_git_work_tree(const char *tree);
|
||||||
|
|
||||||
#define ALTERNATE_DB_ENVIRONMENT "GIT_ALTERNATE_OBJECT_DIRECTORIES"
|
#define ALTERNATE_DB_ENVIRONMENT "GIT_ALTERNATE_OBJECT_DIRECTORIES"
|
||||||
|
|
||||||
extern void setup_work_tree(void);
|
void setup_work_tree(void);
|
||||||
/*
|
/*
|
||||||
* Find the commondir and gitdir of the repository that contains the current
|
* Find the commondir and gitdir of the repository that contains the current
|
||||||
* working directory, without changing the working directory or other global
|
* working directory, without changing the working directory or other global
|
||||||
@ -615,12 +615,12 @@ extern void setup_work_tree(void);
|
|||||||
* both have the same result appended to the buffer. The return value is
|
* both have the same result appended to the buffer. The return value is
|
||||||
* either 0 upon success and non-zero if no repository was found.
|
* either 0 upon success and non-zero if no repository was found.
|
||||||
*/
|
*/
|
||||||
extern int discover_git_directory(struct strbuf *commondir,
|
int discover_git_directory(struct strbuf *commondir,
|
||||||
struct strbuf *gitdir);
|
struct strbuf *gitdir);
|
||||||
extern const char *setup_git_directory_gently(int *);
|
const char *setup_git_directory_gently(int *);
|
||||||
extern const char *setup_git_directory(void);
|
const char *setup_git_directory(void);
|
||||||
extern char *prefix_path(const char *prefix, int len, const char *path);
|
char *prefix_path(const char *prefix, int len, const char *path);
|
||||||
extern char *prefix_path_gently(const char *prefix, int len, int *remaining, const char *path);
|
char *prefix_path_gently(const char *prefix, int len, int *remaining, const char *path);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Concatenate "prefix" (if len is non-zero) and "path", with no
|
* Concatenate "prefix" (if len is non-zero) and "path", with no
|
||||||
@ -632,23 +632,23 @@ extern char *prefix_path_gently(const char *prefix, int len, int *remaining, con
|
|||||||
* The return value is always a newly allocated string (even if the
|
* The return value is always a newly allocated string (even if the
|
||||||
* prefix was empty).
|
* prefix was empty).
|
||||||
*/
|
*/
|
||||||
extern char *prefix_filename(const char *prefix, const char *path);
|
char *prefix_filename(const char *prefix, const char *path);
|
||||||
|
|
||||||
extern int check_filename(const char *prefix, const char *name);
|
int check_filename(const char *prefix, const char *name);
|
||||||
extern void verify_filename(const char *prefix,
|
void verify_filename(const char *prefix,
|
||||||
const char *name,
|
const char *name,
|
||||||
int diagnose_misspelt_rev);
|
int diagnose_misspelt_rev);
|
||||||
extern void verify_non_filename(const char *prefix, const char *name);
|
void verify_non_filename(const char *prefix, const char *name);
|
||||||
extern int path_inside_repo(const char *prefix, const char *path);
|
int path_inside_repo(const char *prefix, const char *path);
|
||||||
|
|
||||||
#define INIT_DB_QUIET 0x0001
|
#define INIT_DB_QUIET 0x0001
|
||||||
#define INIT_DB_EXIST_OK 0x0002
|
#define INIT_DB_EXIST_OK 0x0002
|
||||||
|
|
||||||
extern int init_db(const char *git_dir, const char *real_git_dir,
|
int init_db(const char *git_dir, const char *real_git_dir,
|
||||||
const char *template_dir, unsigned int flags);
|
const char *template_dir, unsigned int flags);
|
||||||
|
|
||||||
extern void sanitize_stdfds(void);
|
void sanitize_stdfds(void);
|
||||||
extern int daemonize(void);
|
int daemonize(void);
|
||||||
|
|
||||||
#define alloc_nr(x) (((x)+16)*3/2)
|
#define alloc_nr(x) (((x)+16)*3/2)
|
||||||
|
|
||||||
@ -672,14 +672,14 @@ extern int daemonize(void);
|
|||||||
|
|
||||||
/* Initialize and use the cache information */
|
/* Initialize and use the cache information */
|
||||||
struct lock_file;
|
struct lock_file;
|
||||||
extern void preload_index(struct index_state *index,
|
void preload_index(struct index_state *index,
|
||||||
const struct pathspec *pathspec,
|
const struct pathspec *pathspec,
|
||||||
unsigned int refresh_flags);
|
unsigned int refresh_flags);
|
||||||
extern int do_read_index(struct index_state *istate, const char *path,
|
int do_read_index(struct index_state *istate, const char *path,
|
||||||
int must_exist); /* for testting only! */
|
int must_exist); /* for testting only! */
|
||||||
extern int read_index_from(struct index_state *, const char *path,
|
int read_index_from(struct index_state *, const char *path,
|
||||||
const char *gitdir);
|
const char *gitdir);
|
||||||
extern int is_index_unborn(struct index_state *);
|
int is_index_unborn(struct index_state *);
|
||||||
|
|
||||||
/* For use with `write_locked_index()`. */
|
/* For use with `write_locked_index()`. */
|
||||||
#define COMMIT_LOCK (1 << 0)
|
#define COMMIT_LOCK (1 << 0)
|
||||||
@ -704,11 +704,11 @@ extern int is_index_unborn(struct index_state *);
|
|||||||
* If `SKIP_IF_UNCHANGED` is given and the index is unchanged, nothing
|
* If `SKIP_IF_UNCHANGED` is given and the index is unchanged, nothing
|
||||||
* is written (and the lock is rolled back if `COMMIT_LOCK` is given).
|
* is written (and the lock is rolled back if `COMMIT_LOCK` is given).
|
||||||
*/
|
*/
|
||||||
extern int write_locked_index(struct index_state *, struct lock_file *lock, unsigned flags);
|
int write_locked_index(struct index_state *, struct lock_file *lock, unsigned flags);
|
||||||
|
|
||||||
extern int discard_index(struct index_state *);
|
int discard_index(struct index_state *);
|
||||||
extern void move_index_extensions(struct index_state *dst, struct index_state *src);
|
void move_index_extensions(struct index_state *dst, struct index_state *src);
|
||||||
extern int unmerged_index(const struct index_state *);
|
int unmerged_index(const struct index_state *);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns 1 if istate differs from tree, 0 otherwise. If tree is NULL,
|
* Returns 1 if istate differs from tree, 0 otherwise. If tree is NULL,
|
||||||
@ -717,15 +717,15 @@ extern int unmerged_index(const struct index_state *);
|
|||||||
* provided, the space-separated list of files that differ will be appended
|
* provided, the space-separated list of files that differ will be appended
|
||||||
* to it.
|
* to it.
|
||||||
*/
|
*/
|
||||||
extern int repo_index_has_changes(struct repository *repo,
|
int repo_index_has_changes(struct repository *repo,
|
||||||
struct tree *tree,
|
struct tree *tree,
|
||||||
struct strbuf *sb);
|
struct strbuf *sb);
|
||||||
|
|
||||||
extern int verify_path(const char *path, unsigned mode);
|
int verify_path(const char *path, unsigned mode);
|
||||||
extern int strcmp_offset(const char *s1, const char *s2, size_t *first_change);
|
int strcmp_offset(const char *s1, const char *s2, size_t *first_change);
|
||||||
extern int index_dir_exists(struct index_state *istate, const char *name, int namelen);
|
int index_dir_exists(struct index_state *istate, const char *name, int namelen);
|
||||||
extern void adjust_dirname_case(struct index_state *istate, char *name);
|
void adjust_dirname_case(struct index_state *istate, char *name);
|
||||||
extern struct cache_entry *index_file_exists(struct index_state *istate, const char *name, int namelen, int igncase);
|
struct cache_entry *index_file_exists(struct index_state *istate, const char *name, int namelen, int igncase);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Searches for an entry defined by name and namelen in the given index.
|
* Searches for an entry defined by name and namelen in the given index.
|
||||||
@ -744,7 +744,7 @@ extern struct cache_entry *index_file_exists(struct index_state *istate, const c
|
|||||||
* index_name_pos(&index, "f", 1) -> -3
|
* index_name_pos(&index, "f", 1) -> -3
|
||||||
* index_name_pos(&index, "g", 1) -> -5
|
* index_name_pos(&index, "g", 1) -> -5
|
||||||
*/
|
*/
|
||||||
extern int index_name_pos(const struct index_state *, const char *name, int namelen);
|
int index_name_pos(const struct index_state *, const char *name, int namelen);
|
||||||
|
|
||||||
#define ADD_CACHE_OK_TO_ADD 1 /* Ok to add */
|
#define ADD_CACHE_OK_TO_ADD 1 /* Ok to add */
|
||||||
#define ADD_CACHE_OK_TO_REPLACE 2 /* Ok to replace file/directory */
|
#define ADD_CACHE_OK_TO_REPLACE 2 /* Ok to replace file/directory */
|
||||||
@ -753,14 +753,14 @@ extern int index_name_pos(const struct index_state *, const char *name, int name
|
|||||||
#define ADD_CACHE_NEW_ONLY 16 /* Do not replace existing ones */
|
#define ADD_CACHE_NEW_ONLY 16 /* Do not replace existing ones */
|
||||||
#define ADD_CACHE_KEEP_CACHE_TREE 32 /* Do not invalidate cache-tree */
|
#define ADD_CACHE_KEEP_CACHE_TREE 32 /* Do not invalidate cache-tree */
|
||||||
#define ADD_CACHE_RENORMALIZE 64 /* Pass along HASH_RENORMALIZE */
|
#define ADD_CACHE_RENORMALIZE 64 /* Pass along HASH_RENORMALIZE */
|
||||||
extern int add_index_entry(struct index_state *, struct cache_entry *ce, int option);
|
int add_index_entry(struct index_state *, struct cache_entry *ce, int option);
|
||||||
extern void rename_index_entry_at(struct index_state *, int pos, const char *new_name);
|
void rename_index_entry_at(struct index_state *, int pos, const char *new_name);
|
||||||
|
|
||||||
/* Remove entry, return true if there are more entries to go. */
|
/* Remove entry, return true if there are more entries to go. */
|
||||||
extern int remove_index_entry_at(struct index_state *, int pos);
|
int remove_index_entry_at(struct index_state *, int pos);
|
||||||
|
|
||||||
extern void remove_marked_cache_entries(struct index_state *istate, int invalidate);
|
void remove_marked_cache_entries(struct index_state *istate, int invalidate);
|
||||||
extern int remove_file_from_index(struct index_state *, const char *path);
|
int remove_file_from_index(struct index_state *, const char *path);
|
||||||
#define ADD_CACHE_VERBOSE 1
|
#define ADD_CACHE_VERBOSE 1
|
||||||
#define ADD_CACHE_PRETEND 2
|
#define ADD_CACHE_PRETEND 2
|
||||||
#define ADD_CACHE_IGNORE_ERRORS 4
|
#define ADD_CACHE_IGNORE_ERRORS 4
|
||||||
@ -775,14 +775,14 @@ extern int remove_file_from_index(struct index_state *, const char *path);
|
|||||||
* the latter will do necessary lstat(2) internally before
|
* the latter will do necessary lstat(2) internally before
|
||||||
* calling the former.
|
* calling the former.
|
||||||
*/
|
*/
|
||||||
extern int add_to_index(struct index_state *, const char *path, struct stat *, int flags);
|
int add_to_index(struct index_state *, const char *path, struct stat *, int flags);
|
||||||
extern int add_file_to_index(struct index_state *, const char *path, int flags);
|
int add_file_to_index(struct index_state *, const char *path, int flags);
|
||||||
|
|
||||||
extern int chmod_index_entry(struct index_state *, struct cache_entry *ce, char flip);
|
int chmod_index_entry(struct index_state *, struct cache_entry *ce, char flip);
|
||||||
extern int ce_same_name(const struct cache_entry *a, const struct cache_entry *b);
|
int ce_same_name(const struct cache_entry *a, const struct cache_entry *b);
|
||||||
extern void set_object_name_for_intent_to_add_entry(struct cache_entry *ce);
|
void set_object_name_for_intent_to_add_entry(struct cache_entry *ce);
|
||||||
extern int index_name_is_other(const struct index_state *, const char *, int);
|
int index_name_is_other(const struct index_state *, const char *, int);
|
||||||
extern void *read_blob_data_from_index(const struct index_state *, const char *, unsigned long *);
|
void *read_blob_data_from_index(const struct index_state *, const char *, unsigned long *);
|
||||||
|
|
||||||
/* do stat comparison even if CE_VALID is true */
|
/* do stat comparison even if CE_VALID is true */
|
||||||
#define CE_MATCH_IGNORE_VALID 01
|
#define CE_MATCH_IGNORE_VALID 01
|
||||||
@ -796,22 +796,22 @@ extern void *read_blob_data_from_index(const struct index_state *, const char *,
|
|||||||
#define CE_MATCH_REFRESH 0x10
|
#define CE_MATCH_REFRESH 0x10
|
||||||
/* don't refresh_fsmonitor state or do stat comparison even if CE_FSMONITOR_VALID is true */
|
/* don't refresh_fsmonitor state or do stat comparison even if CE_FSMONITOR_VALID is true */
|
||||||
#define CE_MATCH_IGNORE_FSMONITOR 0X20
|
#define CE_MATCH_IGNORE_FSMONITOR 0X20
|
||||||
extern int is_racy_timestamp(const struct index_state *istate,
|
int is_racy_timestamp(const struct index_state *istate,
|
||||||
const struct cache_entry *ce);
|
const struct cache_entry *ce);
|
||||||
extern int ie_match_stat(struct index_state *, const struct cache_entry *, struct stat *, unsigned int);
|
int ie_match_stat(struct index_state *, const struct cache_entry *, struct stat *, unsigned int);
|
||||||
extern int ie_modified(struct index_state *, const struct cache_entry *, struct stat *, unsigned int);
|
int ie_modified(struct index_state *, const struct cache_entry *, struct stat *, unsigned int);
|
||||||
|
|
||||||
#define HASH_WRITE_OBJECT 1
|
#define HASH_WRITE_OBJECT 1
|
||||||
#define HASH_FORMAT_CHECK 2
|
#define HASH_FORMAT_CHECK 2
|
||||||
#define HASH_RENORMALIZE 4
|
#define HASH_RENORMALIZE 4
|
||||||
extern int index_fd(struct index_state *istate, struct object_id *oid, int fd, struct stat *st, enum object_type type, const char *path, unsigned flags);
|
int index_fd(struct index_state *istate, struct object_id *oid, int fd, struct stat *st, enum object_type type, const char *path, unsigned flags);
|
||||||
extern int index_path(struct index_state *istate, struct object_id *oid, const char *path, struct stat *st, unsigned flags);
|
int index_path(struct index_state *istate, struct object_id *oid, const char *path, struct stat *st, unsigned flags);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Record to sd the data from st that we use to check whether a file
|
* Record to sd the data from st that we use to check whether a file
|
||||||
* might have changed.
|
* might have changed.
|
||||||
*/
|
*/
|
||||||
extern void fill_stat_data(struct stat_data *sd, struct stat *st);
|
void fill_stat_data(struct stat_data *sd, struct stat *st);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Return 0 if st is consistent with a file not having been changed
|
* Return 0 if st is consistent with a file not having been changed
|
||||||
@ -819,11 +819,11 @@ extern void fill_stat_data(struct stat_data *sd, struct stat *st);
|
|||||||
* combination of MTIME_CHANGED, CTIME_CHANGED, OWNER_CHANGED,
|
* combination of MTIME_CHANGED, CTIME_CHANGED, OWNER_CHANGED,
|
||||||
* INODE_CHANGED, and DATA_CHANGED.
|
* INODE_CHANGED, and DATA_CHANGED.
|
||||||
*/
|
*/
|
||||||
extern int match_stat_data(const struct stat_data *sd, struct stat *st);
|
int match_stat_data(const struct stat_data *sd, struct stat *st);
|
||||||
extern int match_stat_data_racy(const struct index_state *istate,
|
int match_stat_data_racy(const struct index_state *istate,
|
||||||
const struct stat_data *sd, struct stat *st);
|
const struct stat_data *sd, struct stat *st);
|
||||||
|
|
||||||
extern void fill_stat_cache_info(struct cache_entry *ce, struct stat *st);
|
void fill_stat_cache_info(struct cache_entry *ce, struct stat *st);
|
||||||
|
|
||||||
#define REFRESH_REALLY 0x0001 /* ignore_valid */
|
#define REFRESH_REALLY 0x0001 /* ignore_valid */
|
||||||
#define REFRESH_UNMERGED 0x0002 /* allow unmerged */
|
#define REFRESH_UNMERGED 0x0002 /* allow unmerged */
|
||||||
@ -832,10 +832,10 @@ extern void fill_stat_cache_info(struct cache_entry *ce, struct stat *st);
|
|||||||
#define REFRESH_IGNORE_SUBMODULES 0x0010 /* ignore submodules */
|
#define REFRESH_IGNORE_SUBMODULES 0x0010 /* ignore submodules */
|
||||||
#define REFRESH_IN_PORCELAIN 0x0020 /* user friendly output, not "needs update" */
|
#define REFRESH_IN_PORCELAIN 0x0020 /* user friendly output, not "needs update" */
|
||||||
#define REFRESH_PROGRESS 0x0040 /* show progress bar if stderr is tty */
|
#define REFRESH_PROGRESS 0x0040 /* show progress bar if stderr is tty */
|
||||||
extern int refresh_index(struct index_state *, unsigned int flags, const struct pathspec *pathspec, char *seen, const char *header_msg);
|
int refresh_index(struct index_state *, unsigned int flags, const struct pathspec *pathspec, char *seen, const char *header_msg);
|
||||||
extern struct cache_entry *refresh_cache_entry(struct index_state *, struct cache_entry *, unsigned int);
|
struct cache_entry *refresh_cache_entry(struct index_state *, struct cache_entry *, unsigned int);
|
||||||
|
|
||||||
extern void set_alternate_index_output(const char *);
|
void set_alternate_index_output(const char *);
|
||||||
|
|
||||||
extern int verify_index_checksum;
|
extern int verify_index_checksum;
|
||||||
extern int verify_ce_order;
|
extern int verify_ce_order;
|
||||||
@ -1020,7 +1020,7 @@ int verify_repository_format(const struct repository_format *format,
|
|||||||
* set_git_dir() before calling this, and use it only for "are we in a valid
|
* set_git_dir() before calling this, and use it only for "are we in a valid
|
||||||
* repo?".
|
* repo?".
|
||||||
*/
|
*/
|
||||||
extern void check_repository_format(void);
|
void check_repository_format(void);
|
||||||
|
|
||||||
#define MTIME_CHANGED 0x0001
|
#define MTIME_CHANGED 0x0001
|
||||||
#define CTIME_CHANGED 0x0002
|
#define CTIME_CHANGED 0x0002
|
||||||
@ -1045,8 +1045,8 @@ extern void check_repository_format(void);
|
|||||||
* Note that while this version avoids the static buffer, it is not fully
|
* Note that while this version avoids the static buffer, it is not fully
|
||||||
* reentrant, as it calls into other non-reentrant git code.
|
* reentrant, as it calls into other non-reentrant git code.
|
||||||
*/
|
*/
|
||||||
extern const char *find_unique_abbrev(const struct object_id *oid, int len);
|
const char *find_unique_abbrev(const struct object_id *oid, int len);
|
||||||
extern int find_unique_abbrev_r(char *hex, const struct object_id *oid, int len);
|
int find_unique_abbrev_r(char *hex, const struct object_id *oid, int len);
|
||||||
|
|
||||||
extern const unsigned char null_sha1[GIT_MAX_RAWSZ];
|
extern const unsigned char null_sha1[GIT_MAX_RAWSZ];
|
||||||
extern const struct object_id null_oid;
|
extern const struct object_id null_oid;
|
||||||
@ -1242,7 +1242,7 @@ typedef int create_file_fn(const char *path, void *cb);
|
|||||||
int raceproof_create_file(const char *path, create_file_fn fn, void *cb);
|
int raceproof_create_file(const char *path, create_file_fn fn, void *cb);
|
||||||
|
|
||||||
int mkdir_in_gitdir(const char *path);
|
int mkdir_in_gitdir(const char *path);
|
||||||
extern char *expand_user_path(const char *path, int real_home);
|
char *expand_user_path(const char *path, int real_home);
|
||||||
const char *enter_repo(const char *path, int strict);
|
const char *enter_repo(const char *path, int strict);
|
||||||
static inline int is_absolute_path(const char *path)
|
static inline int is_absolute_path(const char *path)
|
||||||
{
|
{
|
||||||
@ -1286,26 +1286,26 @@ int looks_like_command_line_option(const char *str);
|
|||||||
* "$XDG_CONFIG_HOME/git/$filename" if $XDG_CONFIG_HOME is non-empty, otherwise
|
* "$XDG_CONFIG_HOME/git/$filename" if $XDG_CONFIG_HOME is non-empty, otherwise
|
||||||
* "$HOME/.config/git/$filename". Return NULL upon error.
|
* "$HOME/.config/git/$filename". Return NULL upon error.
|
||||||
*/
|
*/
|
||||||
extern char *xdg_config_home(const char *filename);
|
char *xdg_config_home(const char *filename);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a newly allocated string with the evaluation of
|
* Return a newly allocated string with the evaluation of
|
||||||
* "$XDG_CACHE_HOME/git/$filename" if $XDG_CACHE_HOME is non-empty, otherwise
|
* "$XDG_CACHE_HOME/git/$filename" if $XDG_CACHE_HOME is non-empty, otherwise
|
||||||
* "$HOME/.cache/git/$filename". Return NULL upon error.
|
* "$HOME/.cache/git/$filename". Return NULL upon error.
|
||||||
*/
|
*/
|
||||||
extern char *xdg_cache_home(const char *filename);
|
char *xdg_cache_home(const char *filename);
|
||||||
|
|
||||||
extern int git_open_cloexec(const char *name, int flags);
|
int git_open_cloexec(const char *name, int flags);
|
||||||
#define git_open(name) git_open_cloexec(name, O_RDONLY)
|
#define git_open(name) git_open_cloexec(name, O_RDONLY)
|
||||||
extern int unpack_loose_header(git_zstream *stream, unsigned char *map, unsigned long mapsize, void *buffer, unsigned long bufsiz);
|
int unpack_loose_header(git_zstream *stream, unsigned char *map, unsigned long mapsize, void *buffer, unsigned long bufsiz);
|
||||||
extern int parse_loose_header(const char *hdr, unsigned long *sizep);
|
int parse_loose_header(const char *hdr, unsigned long *sizep);
|
||||||
|
|
||||||
extern int check_object_signature(const struct object_id *oid, void *buf, unsigned long size, const char *type);
|
int check_object_signature(const struct object_id *oid, void *buf, unsigned long size, const char *type);
|
||||||
|
|
||||||
extern int finalize_object_file(const char *tmpfile, const char *filename);
|
int finalize_object_file(const char *tmpfile, const char *filename);
|
||||||
|
|
||||||
/* Helper to check and "touch" a file */
|
/* Helper to check and "touch" a file */
|
||||||
extern int check_and_freshen_file(const char *fn, int freshen);
|
int check_and_freshen_file(const char *fn, int freshen);
|
||||||
|
|
||||||
extern const signed char hexval_table[256];
|
extern const signed char hexval_table[256];
|
||||||
static inline unsigned int hexval(unsigned char c)
|
static inline unsigned int hexval(unsigned char c)
|
||||||
@ -1378,21 +1378,21 @@ enum get_oid_result {
|
|||||||
*/
|
*/
|
||||||
};
|
};
|
||||||
|
|
||||||
extern int get_oid(const char *str, struct object_id *oid);
|
int get_oid(const char *str, struct object_id *oid);
|
||||||
extern int get_oid_commit(const char *str, struct object_id *oid);
|
int get_oid_commit(const char *str, struct object_id *oid);
|
||||||
extern int get_oid_committish(const char *str, struct object_id *oid);
|
int get_oid_committish(const char *str, struct object_id *oid);
|
||||||
extern int get_oid_tree(const char *str, struct object_id *oid);
|
int get_oid_tree(const char *str, struct object_id *oid);
|
||||||
extern int get_oid_treeish(const char *str, struct object_id *oid);
|
int get_oid_treeish(const char *str, struct object_id *oid);
|
||||||
extern int get_oid_blob(const char *str, struct object_id *oid);
|
int get_oid_blob(const char *str, struct object_id *oid);
|
||||||
extern void maybe_die_on_misspelt_object_name(const char *name, const char *prefix);
|
void maybe_die_on_misspelt_object_name(const char *name, const char *prefix);
|
||||||
extern enum get_oid_result get_oid_with_context(struct repository *repo, const char *str,
|
enum get_oid_result get_oid_with_context(struct repository *repo, const char *str,
|
||||||
unsigned flags, struct object_id *oid,
|
unsigned flags, struct object_id *oid,
|
||||||
struct object_context *oc);
|
struct object_context *oc);
|
||||||
|
|
||||||
typedef int each_abbrev_fn(const struct object_id *oid, void *);
|
typedef int each_abbrev_fn(const struct object_id *oid, void *);
|
||||||
extern int for_each_abbrev(const char *prefix, each_abbrev_fn, void *);
|
int for_each_abbrev(const char *prefix, each_abbrev_fn, void *);
|
||||||
|
|
||||||
extern int set_disambiguate_hint_config(const char *var, const char *value);
|
int set_disambiguate_hint_config(const char *var, const char *value);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Try to read a SHA1 in hexadecimal format from the 40 characters
|
* Try to read a SHA1 in hexadecimal format from the 40 characters
|
||||||
@ -1401,15 +1401,15 @@ extern int set_disambiguate_hint_config(const char *var, const char *value);
|
|||||||
* input, so it is safe to pass this function an arbitrary
|
* input, so it is safe to pass this function an arbitrary
|
||||||
* null-terminated string.
|
* null-terminated string.
|
||||||
*/
|
*/
|
||||||
extern int get_sha1_hex(const char *hex, unsigned char *sha1);
|
int get_sha1_hex(const char *hex, unsigned char *sha1);
|
||||||
extern int get_oid_hex(const char *hex, struct object_id *sha1);
|
int get_oid_hex(const char *hex, struct object_id *sha1);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Read `len` pairs of hexadecimal digits from `hex` and write the
|
* Read `len` pairs of hexadecimal digits from `hex` and write the
|
||||||
* values to `binary` as `len` bytes. Return 0 on success, or -1 if
|
* values to `binary` as `len` bytes. Return 0 on success, or -1 if
|
||||||
* the input does not consist of hex digits).
|
* the input does not consist of hex digits).
|
||||||
*/
|
*/
|
||||||
extern int hex_to_bytes(unsigned char *binary, const char *hex, size_t len);
|
int hex_to_bytes(unsigned char *binary, const char *hex, size_t len);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Convert a binary hash to its hex equivalent. The `_r` variant is reentrant,
|
* Convert a binary hash to its hex equivalent. The `_r` variant is reentrant,
|
||||||
@ -1437,7 +1437,7 @@ char *oid_to_hex(const struct object_id *oid); /* same static buffer */
|
|||||||
* other invalid character. end is only updated on success; otherwise, it is
|
* other invalid character. end is only updated on success; otherwise, it is
|
||||||
* unmodified.
|
* unmodified.
|
||||||
*/
|
*/
|
||||||
extern int parse_oid_hex(const char *hex, struct object_id *oid, const char **end);
|
int parse_oid_hex(const char *hex, struct object_id *oid, const char **end);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This reads short-hand syntax that not only evaluates to a commit
|
* This reads short-hand syntax that not only evaluates to a commit
|
||||||
@ -1468,23 +1468,23 @@ extern int parse_oid_hex(const char *hex, struct object_id *oid, const char **en
|
|||||||
#define INTERPRET_BRANCH_LOCAL (1<<0)
|
#define INTERPRET_BRANCH_LOCAL (1<<0)
|
||||||
#define INTERPRET_BRANCH_REMOTE (1<<1)
|
#define INTERPRET_BRANCH_REMOTE (1<<1)
|
||||||
#define INTERPRET_BRANCH_HEAD (1<<2)
|
#define INTERPRET_BRANCH_HEAD (1<<2)
|
||||||
extern int interpret_branch_name(const char *str, int len, struct strbuf *,
|
int interpret_branch_name(const char *str, int len, struct strbuf *,
|
||||||
unsigned allowed);
|
unsigned allowed);
|
||||||
extern int get_oid_mb(const char *str, struct object_id *oid);
|
int get_oid_mb(const char *str, struct object_id *oid);
|
||||||
|
|
||||||
extern int validate_headref(const char *ref);
|
int validate_headref(const char *ref);
|
||||||
|
|
||||||
extern int base_name_compare(const char *name1, int len1, int mode1, const char *name2, int len2, int mode2);
|
int base_name_compare(const char *name1, int len1, int mode1, const char *name2, int len2, int mode2);
|
||||||
extern int df_name_compare(const char *name1, int len1, int mode1, const char *name2, int len2, int mode2);
|
int df_name_compare(const char *name1, int len1, int mode1, const char *name2, int len2, int mode2);
|
||||||
extern int name_compare(const char *name1, size_t len1, const char *name2, size_t len2);
|
int name_compare(const char *name1, size_t len1, const char *name2, size_t len2);
|
||||||
extern int cache_name_stage_compare(const char *name1, int len1, int stage1, const char *name2, int len2, int stage2);
|
int cache_name_stage_compare(const char *name1, int len1, int stage1, const char *name2, int len2, int stage2);
|
||||||
|
|
||||||
extern void *read_object_with_reference(const struct object_id *oid,
|
void *read_object_with_reference(const struct object_id *oid,
|
||||||
const char *required_type,
|
const char *required_type,
|
||||||
unsigned long *size,
|
unsigned long *size,
|
||||||
struct object_id *oid_ret);
|
struct object_id *oid_ret);
|
||||||
|
|
||||||
extern struct object *peel_to_type(const char *name, int namelen,
|
struct object *peel_to_type(const char *name, int namelen,
|
||||||
struct object *o, enum object_type);
|
struct object *o, enum object_type);
|
||||||
|
|
||||||
enum date_mode_type {
|
enum date_mode_type {
|
||||||
@ -1539,20 +1539,20 @@ enum want_ident {
|
|||||||
WANT_COMMITTER_IDENT
|
WANT_COMMITTER_IDENT
|
||||||
};
|
};
|
||||||
|
|
||||||
extern const char *git_author_info(int);
|
const char *git_author_info(int);
|
||||||
extern const char *git_committer_info(int);
|
const char *git_committer_info(int);
|
||||||
extern const char *fmt_ident(const char *name, const char *email,
|
const char *fmt_ident(const char *name, const char *email,
|
||||||
enum want_ident whose_ident,
|
enum want_ident whose_ident,
|
||||||
const char *date_str, int);
|
const char *date_str, int);
|
||||||
extern const char *fmt_name(enum want_ident);
|
const char *fmt_name(enum want_ident);
|
||||||
extern const char *ident_default_name(void);
|
const char *ident_default_name(void);
|
||||||
extern const char *ident_default_email(void);
|
const char *ident_default_email(void);
|
||||||
extern const char *git_editor(void);
|
const char *git_editor(void);
|
||||||
extern const char *git_sequence_editor(void);
|
const char *git_sequence_editor(void);
|
||||||
extern const char *git_pager(int stdout_is_tty);
|
const char *git_pager(int stdout_is_tty);
|
||||||
extern int is_terminal_dumb(void);
|
int is_terminal_dumb(void);
|
||||||
extern int git_ident_config(const char *, const char *, void *);
|
int git_ident_config(const char *, const char *, void *);
|
||||||
extern void reset_ident_date(void);
|
void reset_ident_date(void);
|
||||||
|
|
||||||
struct ident_split {
|
struct ident_split {
|
||||||
const char *name_begin;
|
const char *name_begin;
|
||||||
@ -1568,7 +1568,7 @@ struct ident_split {
|
|||||||
* Signals an success with 0, but time part of the result may be NULL
|
* Signals an success with 0, but time part of the result may be NULL
|
||||||
* if the input lacks timestamp and zone
|
* if the input lacks timestamp and zone
|
||||||
*/
|
*/
|
||||||
extern int split_ident_line(struct ident_split *, const char *, int);
|
int split_ident_line(struct ident_split *, const char *, int);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Like show_date, but pull the timestamp and tz parameters from
|
* Like show_date, but pull the timestamp and tz parameters from
|
||||||
@ -1585,7 +1585,7 @@ const char *show_ident_date(const struct ident_split *id,
|
|||||||
* Because there are two fields, we must choose one as the primary key; we
|
* Because there are two fields, we must choose one as the primary key; we
|
||||||
* currently arbitrarily pick the email.
|
* currently arbitrarily pick the email.
|
||||||
*/
|
*/
|
||||||
extern int ident_cmp(const struct ident_split *, const struct ident_split *);
|
int ident_cmp(const struct ident_split *, const struct ident_split *);
|
||||||
|
|
||||||
struct checkout {
|
struct checkout {
|
||||||
struct index_state *istate;
|
struct index_state *istate;
|
||||||
@ -1601,14 +1601,14 @@ struct checkout {
|
|||||||
#define CHECKOUT_INIT { NULL, "" }
|
#define CHECKOUT_INIT { NULL, "" }
|
||||||
|
|
||||||
#define TEMPORARY_FILENAME_LENGTH 25
|
#define TEMPORARY_FILENAME_LENGTH 25
|
||||||
extern int checkout_entry(struct cache_entry *ce, const struct checkout *state, char *topath, int *nr_checkouts);
|
int checkout_entry(struct cache_entry *ce, const struct checkout *state, char *topath, int *nr_checkouts);
|
||||||
extern void enable_delayed_checkout(struct checkout *state);
|
void enable_delayed_checkout(struct checkout *state);
|
||||||
extern int finish_delayed_checkout(struct checkout *state, int *nr_checkouts);
|
int finish_delayed_checkout(struct checkout *state, int *nr_checkouts);
|
||||||
/*
|
/*
|
||||||
* Unlink the last component and schedule the leading directories for
|
* Unlink the last component and schedule the leading directories for
|
||||||
* removal, such that empty directories get removed.
|
* removal, such that empty directories get removed.
|
||||||
*/
|
*/
|
||||||
extern void unlink_entry(const struct cache_entry *ce);
|
void unlink_entry(const struct cache_entry *ce);
|
||||||
|
|
||||||
struct cache_def {
|
struct cache_def {
|
||||||
struct strbuf path;
|
struct strbuf path;
|
||||||
@ -1622,12 +1622,12 @@ static inline void cache_def_clear(struct cache_def *cache)
|
|||||||
strbuf_release(&cache->path);
|
strbuf_release(&cache->path);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int has_symlink_leading_path(const char *name, int len);
|
int has_symlink_leading_path(const char *name, int len);
|
||||||
extern int threaded_has_symlink_leading_path(struct cache_def *, const char *, int);
|
int threaded_has_symlink_leading_path(struct cache_def *, const char *, int);
|
||||||
extern int check_leading_path(const char *name, int len);
|
int check_leading_path(const char *name, int len);
|
||||||
extern int has_dirs_only_path(const char *name, int len, int prefix_len);
|
int has_dirs_only_path(const char *name, int len, int prefix_len);
|
||||||
extern void schedule_dir_for_removal(const char *name, int len);
|
void schedule_dir_for_removal(const char *name, int len);
|
||||||
extern void remove_scheduled_dirs(void);
|
void remove_scheduled_dirs(void);
|
||||||
|
|
||||||
struct pack_window {
|
struct pack_window {
|
||||||
struct pack_window *next;
|
struct pack_window *next;
|
||||||
@ -1649,14 +1649,14 @@ struct pack_entry {
|
|||||||
* usual "XXXXXX" trailer, and the resulting filename is written into the
|
* usual "XXXXXX" trailer, and the resulting filename is written into the
|
||||||
* "template" buffer. Returns the open descriptor.
|
* "template" buffer. Returns the open descriptor.
|
||||||
*/
|
*/
|
||||||
extern int odb_mkstemp(struct strbuf *temp_filename, const char *pattern);
|
int odb_mkstemp(struct strbuf *temp_filename, const char *pattern);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Create a pack .keep file named "name" (which should generally be the output
|
* Create a pack .keep file named "name" (which should generally be the output
|
||||||
* of odb_pack_name). Returns a file descriptor opened for writing, or -1 on
|
* of odb_pack_name). Returns a file descriptor opened for writing, or -1 on
|
||||||
* error.
|
* error.
|
||||||
*/
|
*/
|
||||||
extern int odb_pack_keep(const char *name);
|
int odb_pack_keep(const char *name);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set this to 0 to prevent oid_object_info_extended() from fetching missing
|
* Set this to 0 to prevent oid_object_info_extended() from fetching missing
|
||||||
@ -1667,10 +1667,10 @@ extern int odb_pack_keep(const char *name);
|
|||||||
extern int fetch_if_missing;
|
extern int fetch_if_missing;
|
||||||
|
|
||||||
/* Dumb servers support */
|
/* Dumb servers support */
|
||||||
extern int update_server_info(int);
|
int update_server_info(int);
|
||||||
|
|
||||||
extern const char *get_log_output_encoding(void);
|
const char *get_log_output_encoding(void);
|
||||||
extern const char *get_commit_output_encoding(void);
|
const char *get_commit_output_encoding(void);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is a hack for test programs like test-dump-untracked-cache to
|
* This is a hack for test programs like test-dump-untracked-cache to
|
||||||
@ -1679,8 +1679,8 @@ extern const char *get_commit_output_encoding(void);
|
|||||||
*/
|
*/
|
||||||
extern int ignore_untracked_cache_config;
|
extern int ignore_untracked_cache_config;
|
||||||
|
|
||||||
extern int committer_ident_sufficiently_given(void);
|
int committer_ident_sufficiently_given(void);
|
||||||
extern int author_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;
|
||||||
@ -1688,22 +1688,22 @@ extern const char *git_mailmap_file;
|
|||||||
extern const char *git_mailmap_blob;
|
extern const char *git_mailmap_blob;
|
||||||
|
|
||||||
/* IO helper functions */
|
/* IO helper functions */
|
||||||
extern void maybe_flush_or_die(FILE *, const char *);
|
void maybe_flush_or_die(FILE *, const char *);
|
||||||
__attribute__((format (printf, 2, 3)))
|
__attribute__((format (printf, 2, 3)))
|
||||||
extern void fprintf_or_die(FILE *, const char *fmt, ...);
|
extern void fprintf_or_die(FILE *, const char *fmt, ...);
|
||||||
|
|
||||||
#define COPY_READ_ERROR (-2)
|
#define COPY_READ_ERROR (-2)
|
||||||
#define COPY_WRITE_ERROR (-3)
|
#define COPY_WRITE_ERROR (-3)
|
||||||
extern int copy_fd(int ifd, int ofd);
|
int copy_fd(int ifd, int ofd);
|
||||||
extern int copy_file(const char *dst, const char *src, int mode);
|
int copy_file(const char *dst, const char *src, int mode);
|
||||||
extern int copy_file_with_time(const char *dst, const char *src, int mode);
|
int copy_file_with_time(const char *dst, const char *src, int mode);
|
||||||
|
|
||||||
extern void write_or_die(int fd, const void *buf, size_t count);
|
void write_or_die(int fd, const void *buf, size_t count);
|
||||||
extern void fsync_or_die(int fd, const char *);
|
void fsync_or_die(int fd, const char *);
|
||||||
|
|
||||||
extern ssize_t read_in_full(int fd, void *buf, size_t count);
|
ssize_t read_in_full(int fd, void *buf, size_t count);
|
||||||
extern ssize_t write_in_full(int fd, const void *buf, size_t count);
|
ssize_t write_in_full(int fd, const void *buf, size_t count);
|
||||||
extern ssize_t pread_in_full(int fd, void *buf, size_t count, off_t offset);
|
ssize_t pread_in_full(int fd, void *buf, size_t count, off_t offset);
|
||||||
|
|
||||||
static inline ssize_t write_str_in_full(int fd, const char *str)
|
static inline ssize_t write_str_in_full(int fd, const char *str)
|
||||||
{
|
{
|
||||||
@ -1714,7 +1714,7 @@ static inline ssize_t write_str_in_full(int fd, const char *str)
|
|||||||
* Open (and truncate) the file at path, write the contents of buf to it,
|
* Open (and truncate) the file at path, write the contents of buf to it,
|
||||||
* and close it. Dies if any errors are encountered.
|
* and close it. Dies if any errors are encountered.
|
||||||
*/
|
*/
|
||||||
extern void write_file_buf(const char *path, const char *buf, size_t len);
|
void write_file_buf(const char *path, const char *buf, size_t len);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Like write_file_buf(), but format the contents into a buffer first.
|
* Like write_file_buf(), but format the contents into a buffer first.
|
||||||
@ -1727,13 +1727,13 @@ __attribute__((format (printf, 2, 3)))
|
|||||||
extern void write_file(const char *path, const char *fmt, ...);
|
extern void write_file(const char *path, const char *fmt, ...);
|
||||||
|
|
||||||
/* pager.c */
|
/* pager.c */
|
||||||
extern void setup_pager(void);
|
void setup_pager(void);
|
||||||
extern int pager_in_use(void);
|
int pager_in_use(void);
|
||||||
extern int pager_use_color;
|
extern int pager_use_color;
|
||||||
extern int term_columns(void);
|
int term_columns(void);
|
||||||
extern int decimal_width(uintmax_t);
|
int decimal_width(uintmax_t);
|
||||||
extern int check_pager_config(const char *cmd);
|
int check_pager_config(const char *cmd);
|
||||||
extern void prepare_pager_args(struct child_process *, const char *pager);
|
void prepare_pager_args(struct child_process *, const char *pager);
|
||||||
|
|
||||||
extern const char *editor_program;
|
extern const char *editor_program;
|
||||||
extern const char *askpass_program;
|
extern const char *askpass_program;
|
||||||
@ -1777,13 +1777,13 @@ void shift_tree_by(const struct object_id *, const struct object_id *, struct ob
|
|||||||
/* All WS_* -- when extended, adapt diff.c emit_symbol */
|
/* All WS_* -- when extended, adapt diff.c emit_symbol */
|
||||||
#define WS_RULE_MASK 07777
|
#define WS_RULE_MASK 07777
|
||||||
extern unsigned whitespace_rule_cfg;
|
extern unsigned whitespace_rule_cfg;
|
||||||
extern unsigned whitespace_rule(struct index_state *, const char *);
|
unsigned whitespace_rule(struct index_state *, const char *);
|
||||||
extern unsigned parse_whitespace_rule(const char *);
|
unsigned parse_whitespace_rule(const char *);
|
||||||
extern unsigned ws_check(const char *line, int len, unsigned ws_rule);
|
unsigned ws_check(const char *line, int len, unsigned ws_rule);
|
||||||
extern void ws_check_emit(const char *line, int len, unsigned ws_rule, FILE *stream, const char *set, const char *reset, const char *ws);
|
void ws_check_emit(const char *line, int len, unsigned ws_rule, FILE *stream, const char *set, const char *reset, const char *ws);
|
||||||
extern char *whitespace_error_string(unsigned ws);
|
char *whitespace_error_string(unsigned ws);
|
||||||
extern void ws_fix_copy(struct strbuf *, const char *, int, unsigned, int *);
|
void ws_fix_copy(struct strbuf *, const char *, int, unsigned, int *);
|
||||||
extern int ws_blank_line(const char *line, int len, unsigned ws_rule);
|
int ws_blank_line(const char *line, int len, unsigned ws_rule);
|
||||||
#define ws_tab_width(rule) ((rule) & WS_TAB_WIDTH_MASK)
|
#define ws_tab_width(rule) ((rule) & WS_TAB_WIDTH_MASK)
|
||||||
|
|
||||||
/* ls-files */
|
/* ls-files */
|
||||||
@ -1853,9 +1853,9 @@ void safe_create_dir(const char *dir, int share);
|
|||||||
* Should we print an ellipsis after an abbreviated SHA-1 value
|
* Should we print an ellipsis after an abbreviated SHA-1 value
|
||||||
* when doing diff-raw output or indicating a detached HEAD?
|
* when doing diff-raw output or indicating a detached HEAD?
|
||||||
*/
|
*/
|
||||||
extern int print_sha1_ellipsis(void);
|
int print_sha1_ellipsis(void);
|
||||||
|
|
||||||
/* Return 1 if the file is empty or does not exists, 0 otherwise. */
|
/* Return 1 if the file is empty or does not exists, 0 otherwise. */
|
||||||
extern int is_empty_or_missing_file(const char *filename);
|
int is_empty_or_missing_file(const char *filename);
|
||||||
|
|
||||||
#endif /* CACHE_H */
|
#endif /* CACHE_H */
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
* tracking branch. Return the name of the remote if such a branch
|
* tracking branch. Return the name of the remote if such a branch
|
||||||
* exists, NULL otherwise.
|
* exists, NULL otherwise.
|
||||||
*/
|
*/
|
||||||
extern const char *unique_tracking_name(const char *name,
|
const char *unique_tracking_name(const char *name,
|
||||||
struct object_id *oid,
|
struct object_id *oid,
|
||||||
int *dwim_remotes_matched);
|
int *dwim_remotes_matched);
|
||||||
|
|
||||||
|
12
column.h
12
column.h
@ -27,20 +27,20 @@ struct column_options {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct option;
|
struct option;
|
||||||
extern int parseopt_column_callback(const struct option *, const char *, int);
|
int parseopt_column_callback(const struct option *, const char *, int);
|
||||||
extern int git_column_config(const char *var, const char *value,
|
int git_column_config(const char *var, const char *value,
|
||||||
const char *command, unsigned int *colopts);
|
const char *command, unsigned int *colopts);
|
||||||
extern int finalize_colopts(unsigned int *colopts, int stdout_is_tty);
|
int finalize_colopts(unsigned int *colopts, int stdout_is_tty);
|
||||||
static inline int column_active(unsigned int colopts)
|
static inline int column_active(unsigned int colopts)
|
||||||
{
|
{
|
||||||
return (colopts & COL_ENABLE_MASK) == COL_ENABLED;
|
return (colopts & COL_ENABLE_MASK) == COL_ENABLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct string_list;
|
struct string_list;
|
||||||
extern void print_columns(const struct string_list *list, unsigned int colopts,
|
void print_columns(const struct string_list *list, unsigned int colopts,
|
||||||
const struct column_options *opts);
|
const struct column_options *opts);
|
||||||
|
|
||||||
extern int run_column_filter(int colopts, const struct column_options *);
|
int run_column_filter(int colopts, const struct column_options *);
|
||||||
extern int stop_column_filter(void);
|
int stop_column_filter(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
70
commit.h
70
commit.h
@ -177,8 +177,8 @@ void free_commit_list(struct commit_list *list);
|
|||||||
|
|
||||||
struct rev_info; /* in revision.h, it circularly uses enum cmit_fmt */
|
struct rev_info; /* in revision.h, it circularly uses enum cmit_fmt */
|
||||||
|
|
||||||
extern int has_non_ascii(const char *text);
|
int has_non_ascii(const char *text);
|
||||||
extern const char *logmsg_reencode(const struct commit *commit,
|
const char *logmsg_reencode(const struct commit *commit,
|
||||||
char **commit_encoding,
|
char **commit_encoding,
|
||||||
const char *output_encoding);
|
const char *output_encoding);
|
||||||
const char *repo_logmsg_reencode(struct repository *r,
|
const char *repo_logmsg_reencode(struct repository *r,
|
||||||
@ -189,7 +189,7 @@ const char *repo_logmsg_reencode(struct repository *r,
|
|||||||
#define logmsg_reencode(c, enc, out) repo_logmsg_reencode(the_repository, c, enc, out)
|
#define logmsg_reencode(c, enc, out) repo_logmsg_reencode(the_repository, c, enc, out)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern const char *skip_blank_lines(const char *msg);
|
const char *skip_blank_lines(const char *msg);
|
||||||
|
|
||||||
/** Removes the first commit from a list sorted by date, and adds all
|
/** Removes the first commit from a list sorted by date, and adds all
|
||||||
* of its parents.
|
* of its parents.
|
||||||
@ -240,22 +240,22 @@ struct commit *get_fork_point(const char *refname, struct commit *commit);
|
|||||||
|
|
||||||
struct oid_array;
|
struct oid_array;
|
||||||
struct ref;
|
struct ref;
|
||||||
extern int register_shallow(struct repository *r, const struct object_id *oid);
|
int register_shallow(struct repository *r, const struct object_id *oid);
|
||||||
extern int unregister_shallow(const struct object_id *oid);
|
int unregister_shallow(const struct object_id *oid);
|
||||||
extern int for_each_commit_graft(each_commit_graft_fn, void *);
|
int for_each_commit_graft(each_commit_graft_fn, void *);
|
||||||
extern int is_repository_shallow(struct repository *r);
|
int is_repository_shallow(struct repository *r);
|
||||||
extern struct commit_list *get_shallow_commits(struct object_array *heads,
|
struct commit_list *get_shallow_commits(struct object_array *heads,
|
||||||
int depth, int shallow_flag, int not_shallow_flag);
|
int depth, int shallow_flag, int not_shallow_flag);
|
||||||
extern struct commit_list *get_shallow_commits_by_rev_list(
|
struct commit_list *get_shallow_commits_by_rev_list(
|
||||||
int ac, const char **av, int shallow_flag, int not_shallow_flag);
|
int ac, const char **av, int shallow_flag, int not_shallow_flag);
|
||||||
extern void set_alternate_shallow_file(struct repository *r, const char *path, int override);
|
void set_alternate_shallow_file(struct repository *r, const char *path, int override);
|
||||||
extern int write_shallow_commits(struct strbuf *out, int use_pack_protocol,
|
int write_shallow_commits(struct strbuf *out, int use_pack_protocol,
|
||||||
const struct oid_array *extra);
|
const struct oid_array *extra);
|
||||||
extern void setup_alternate_shallow(struct lock_file *shallow_lock,
|
void setup_alternate_shallow(struct lock_file *shallow_lock,
|
||||||
const char **alternate_shallow_file,
|
const char **alternate_shallow_file,
|
||||||
const struct oid_array *extra);
|
const struct oid_array *extra);
|
||||||
extern const char *setup_temporary_shallow(const struct oid_array *extra);
|
const char *setup_temporary_shallow(const struct oid_array *extra);
|
||||||
extern void advertise_shallow_grafts(int);
|
void advertise_shallow_grafts(int);
|
||||||
|
|
||||||
struct shallow_info {
|
struct shallow_info {
|
||||||
struct oid_array *shallow;
|
struct oid_array *shallow;
|
||||||
@ -272,20 +272,20 @@ struct shallow_info {
|
|||||||
int nr_commits;
|
int nr_commits;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern void prepare_shallow_info(struct shallow_info *, struct oid_array *);
|
void prepare_shallow_info(struct shallow_info *, struct oid_array *);
|
||||||
extern void clear_shallow_info(struct shallow_info *);
|
void clear_shallow_info(struct shallow_info *);
|
||||||
extern void remove_nonexistent_theirs_shallow(struct shallow_info *);
|
void remove_nonexistent_theirs_shallow(struct shallow_info *);
|
||||||
extern void assign_shallow_commits_to_refs(struct shallow_info *info,
|
void assign_shallow_commits_to_refs(struct shallow_info *info,
|
||||||
uint32_t **used,
|
uint32_t **used,
|
||||||
int *ref_status);
|
int *ref_status);
|
||||||
extern int delayed_reachability_test(struct shallow_info *si, int c);
|
int delayed_reachability_test(struct shallow_info *si, int c);
|
||||||
#define PRUNE_SHOW_ONLY 1
|
#define PRUNE_SHOW_ONLY 1
|
||||||
#define PRUNE_QUICK 2
|
#define PRUNE_QUICK 2
|
||||||
extern void prune_shallow(unsigned options);
|
void prune_shallow(unsigned options);
|
||||||
extern struct trace_key trace_shallow;
|
extern struct trace_key trace_shallow;
|
||||||
|
|
||||||
extern int interactive_add(int argc, const char **argv, const char *prefix, int patch);
|
int interactive_add(int argc, const char **argv, const char *prefix, int patch);
|
||||||
extern int run_add_interactive(const char *revision, const char *patch_mode,
|
int run_add_interactive(const char *revision, const char *patch_mode,
|
||||||
const struct pathspec *pathspec);
|
const struct pathspec *pathspec);
|
||||||
|
|
||||||
struct commit_extra_header {
|
struct commit_extra_header {
|
||||||
@ -295,24 +295,24 @@ struct commit_extra_header {
|
|||||||
size_t len;
|
size_t len;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern void append_merge_tag_headers(struct commit_list *parents,
|
void append_merge_tag_headers(struct commit_list *parents,
|
||||||
struct commit_extra_header ***tail);
|
struct commit_extra_header ***tail);
|
||||||
|
|
||||||
extern int commit_tree(const char *msg, size_t msg_len,
|
int commit_tree(const char *msg, size_t msg_len,
|
||||||
const struct object_id *tree,
|
const struct object_id *tree,
|
||||||
struct commit_list *parents, struct object_id *ret,
|
struct commit_list *parents, struct object_id *ret,
|
||||||
const char *author, const char *sign_commit);
|
const char *author, const char *sign_commit);
|
||||||
|
|
||||||
extern int commit_tree_extended(const char *msg, size_t msg_len,
|
int commit_tree_extended(const char *msg, size_t msg_len,
|
||||||
const struct object_id *tree,
|
const struct object_id *tree,
|
||||||
struct commit_list *parents,
|
struct commit_list *parents,
|
||||||
struct object_id *ret, const char *author,
|
struct object_id *ret, const char *author,
|
||||||
const char *sign_commit,
|
const char *sign_commit,
|
||||||
struct commit_extra_header *);
|
struct commit_extra_header *);
|
||||||
|
|
||||||
extern struct commit_extra_header *read_commit_extra_headers(struct commit *, const char **);
|
struct commit_extra_header *read_commit_extra_headers(struct commit *, const char **);
|
||||||
|
|
||||||
extern void free_commit_extra_headers(struct commit_extra_header *extra);
|
void free_commit_extra_headers(struct commit_extra_header *extra);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Search the commit object contents given by "msg" for the header "key".
|
* Search the commit object contents given by "msg" for the header "key".
|
||||||
@ -322,23 +322,23 @@ extern void free_commit_extra_headers(struct commit_extra_header *extra);
|
|||||||
* Note that some headers (like mergetag) may be multi-line. It is the caller's
|
* Note that some headers (like mergetag) may be multi-line. It is the caller's
|
||||||
* responsibility to parse further in this case!
|
* responsibility to parse further in this case!
|
||||||
*/
|
*/
|
||||||
extern const char *find_commit_header(const char *msg, const char *key,
|
const char *find_commit_header(const char *msg, const char *key,
|
||||||
size_t *out_len);
|
size_t *out_len);
|
||||||
|
|
||||||
/* Find the end of the log message, the right place for a new trailer. */
|
/* Find the end of the log message, the right place for a new trailer. */
|
||||||
extern size_t ignore_non_trailer(const char *buf, size_t len);
|
size_t ignore_non_trailer(const char *buf, size_t len);
|
||||||
|
|
||||||
typedef int (*each_mergetag_fn)(struct commit *commit, struct commit_extra_header *extra,
|
typedef int (*each_mergetag_fn)(struct commit *commit, struct commit_extra_header *extra,
|
||||||
void *cb_data);
|
void *cb_data);
|
||||||
|
|
||||||
extern int for_each_mergetag(each_mergetag_fn fn, struct commit *commit, void *data);
|
int for_each_mergetag(each_mergetag_fn fn, struct commit *commit, void *data);
|
||||||
|
|
||||||
struct merge_remote_desc {
|
struct merge_remote_desc {
|
||||||
struct object *obj; /* the named object, could be a tag */
|
struct object *obj; /* the named object, could be a tag */
|
||||||
char name[FLEX_ARRAY];
|
char name[FLEX_ARRAY];
|
||||||
};
|
};
|
||||||
extern struct merge_remote_desc *merge_remote_util(struct commit *);
|
struct merge_remote_desc *merge_remote_util(struct commit *);
|
||||||
extern void set_merge_remote_desc(struct commit *commit,
|
void set_merge_remote_desc(struct commit *commit,
|
||||||
const char *name, struct object *obj);
|
const char *name, struct object *obj);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -348,9 +348,9 @@ extern void set_merge_remote_desc(struct commit *commit,
|
|||||||
*/
|
*/
|
||||||
struct commit *get_merge_parent(const char *name);
|
struct commit *get_merge_parent(const char *name);
|
||||||
|
|
||||||
extern int parse_signed_commit(const struct commit *commit,
|
int parse_signed_commit(const struct commit *commit,
|
||||||
struct strbuf *message, struct strbuf *signature);
|
struct strbuf *message, struct strbuf *signature);
|
||||||
extern int remove_signature(struct strbuf *buf);
|
int remove_signature(struct strbuf *buf);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check the signature of the given commit. The result of the check is stored
|
* Check the signature of the given commit. The result of the check is stored
|
||||||
@ -359,7 +359,7 @@ extern int remove_signature(struct strbuf *buf);
|
|||||||
* at all. This may allocate memory for sig->gpg_output, sig->gpg_status,
|
* at all. This may allocate memory for sig->gpg_output, sig->gpg_status,
|
||||||
* sig->signer and sig->key.
|
* sig->signer and sig->key.
|
||||||
*/
|
*/
|
||||||
extern int check_commit_signature(const struct commit *commit, struct signature_check *sigc);
|
int check_commit_signature(const struct commit *commit, struct signature_check *sigc);
|
||||||
|
|
||||||
/* record author-date for each commit object */
|
/* record author-date for each commit object */
|
||||||
struct author_date_slab;
|
struct author_date_slab;
|
||||||
|
182
config.h
182
config.h
@ -68,62 +68,62 @@ struct config_options {
|
|||||||
};
|
};
|
||||||
|
|
||||||
typedef int (*config_fn_t)(const char *, const char *, void *);
|
typedef int (*config_fn_t)(const char *, const char *, void *);
|
||||||
extern int git_default_config(const char *, const char *, void *);
|
int git_default_config(const char *, const char *, void *);
|
||||||
extern int git_config_from_file(config_fn_t fn, const char *, void *);
|
int git_config_from_file(config_fn_t fn, const char *, void *);
|
||||||
extern int git_config_from_file_with_options(config_fn_t fn, const char *,
|
int git_config_from_file_with_options(config_fn_t fn, const char *,
|
||||||
void *,
|
void *,
|
||||||
const struct config_options *);
|
const struct config_options *);
|
||||||
extern int git_config_from_mem(config_fn_t fn,
|
int git_config_from_mem(config_fn_t fn,
|
||||||
const enum config_origin_type,
|
const enum config_origin_type,
|
||||||
const char *name,
|
const char *name,
|
||||||
const char *buf, size_t len,
|
const char *buf, size_t len,
|
||||||
void *data, const struct config_options *opts);
|
void *data, const struct config_options *opts);
|
||||||
extern int git_config_from_blob_oid(config_fn_t fn, const char *name,
|
int git_config_from_blob_oid(config_fn_t fn, const char *name,
|
||||||
const struct object_id *oid, void *data);
|
const struct object_id *oid, void *data);
|
||||||
extern void git_config_push_parameter(const char *text);
|
void git_config_push_parameter(const char *text);
|
||||||
extern int git_config_from_parameters(config_fn_t fn, void *data);
|
int git_config_from_parameters(config_fn_t fn, void *data);
|
||||||
extern void read_early_config(config_fn_t cb, void *data);
|
void read_early_config(config_fn_t cb, void *data);
|
||||||
extern void git_config(config_fn_t fn, void *);
|
void git_config(config_fn_t fn, void *);
|
||||||
extern int config_with_options(config_fn_t fn, void *,
|
int config_with_options(config_fn_t fn, void *,
|
||||||
struct git_config_source *config_source,
|
struct git_config_source *config_source,
|
||||||
const struct config_options *opts);
|
const struct config_options *opts);
|
||||||
extern int git_parse_ssize_t(const char *, ssize_t *);
|
int git_parse_ssize_t(const char *, ssize_t *);
|
||||||
extern int git_parse_ulong(const char *, unsigned long *);
|
int git_parse_ulong(const char *, unsigned long *);
|
||||||
extern int git_parse_maybe_bool(const char *);
|
int git_parse_maybe_bool(const char *);
|
||||||
extern int git_config_int(const char *, const char *);
|
int git_config_int(const char *, const char *);
|
||||||
extern int64_t git_config_int64(const char *, const char *);
|
int64_t git_config_int64(const char *, const char *);
|
||||||
extern unsigned long git_config_ulong(const char *, const char *);
|
unsigned long git_config_ulong(const char *, const char *);
|
||||||
extern ssize_t git_config_ssize_t(const char *, const char *);
|
ssize_t git_config_ssize_t(const char *, const char *);
|
||||||
extern int git_config_bool_or_int(const char *, const char *, int *);
|
int git_config_bool_or_int(const char *, const char *, int *);
|
||||||
extern int git_config_bool(const char *, const char *);
|
int git_config_bool(const char *, const char *);
|
||||||
extern int git_config_string(const char **, const char *, const char *);
|
int git_config_string(const char **, const char *, const char *);
|
||||||
extern int git_config_pathname(const char **, const char *, const char *);
|
int git_config_pathname(const char **, const char *, const char *);
|
||||||
extern int git_config_expiry_date(timestamp_t *, const char *, const char *);
|
int git_config_expiry_date(timestamp_t *, const char *, const char *);
|
||||||
extern int git_config_color(char *, const char *, const char *);
|
int git_config_color(char *, const char *, const char *);
|
||||||
extern int git_config_set_in_file_gently(const char *, const char *, const char *);
|
int git_config_set_in_file_gently(const char *, const char *, const char *);
|
||||||
extern void git_config_set_in_file(const char *, const char *, const char *);
|
void git_config_set_in_file(const char *, const char *, const char *);
|
||||||
extern int git_config_set_gently(const char *, const char *);
|
int git_config_set_gently(const char *, const char *);
|
||||||
extern void git_config_set(const char *, const char *);
|
void git_config_set(const char *, const char *);
|
||||||
extern int git_config_parse_key(const char *, char **, int *);
|
int git_config_parse_key(const char *, char **, int *);
|
||||||
extern int git_config_key_is_valid(const char *key);
|
int git_config_key_is_valid(const char *key);
|
||||||
extern int git_config_set_multivar_gently(const char *, const char *, const char *, int);
|
int git_config_set_multivar_gently(const char *, const char *, const char *, int);
|
||||||
extern void git_config_set_multivar(const char *, const char *, const char *, int);
|
void git_config_set_multivar(const char *, const char *, const char *, int);
|
||||||
extern int git_config_set_multivar_in_file_gently(const char *, const char *, const char *, const char *, int);
|
int git_config_set_multivar_in_file_gently(const char *, const char *, const char *, const char *, int);
|
||||||
extern void git_config_set_multivar_in_file(const char *, const char *, const char *, const char *, int);
|
void git_config_set_multivar_in_file(const char *, const char *, const char *, const char *, int);
|
||||||
extern int git_config_rename_section(const char *, const char *);
|
int git_config_rename_section(const char *, const char *);
|
||||||
extern int git_config_rename_section_in_file(const char *, const char *, const char *);
|
int git_config_rename_section_in_file(const char *, const char *, const char *);
|
||||||
extern int git_config_copy_section(const char *, const char *);
|
int git_config_copy_section(const char *, const char *);
|
||||||
extern int git_config_copy_section_in_file(const char *, const char *, const char *);
|
int git_config_copy_section_in_file(const char *, const char *, const char *);
|
||||||
extern const char *git_etc_gitconfig(void);
|
const char *git_etc_gitconfig(void);
|
||||||
extern int git_env_bool(const char *, int);
|
int git_env_bool(const char *, int);
|
||||||
extern unsigned long git_env_ulong(const char *, unsigned long);
|
unsigned long git_env_ulong(const char *, unsigned long);
|
||||||
extern int git_config_system(void);
|
int git_config_system(void);
|
||||||
extern int config_error_nonbool(const char *);
|
int config_error_nonbool(const char *);
|
||||||
#if defined(__GNUC__)
|
#if defined(__GNUC__)
|
||||||
#define config_error_nonbool(s) (config_error_nonbool(s), const_error())
|
#define config_error_nonbool(s) (config_error_nonbool(s), const_error())
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern int git_config_parse_parameter(const char *, config_fn_t fn, void *data);
|
int git_config_parse_parameter(const char *, config_fn_t fn, void *data);
|
||||||
|
|
||||||
enum config_scope {
|
enum config_scope {
|
||||||
CONFIG_SCOPE_UNKNOWN = 0,
|
CONFIG_SCOPE_UNKNOWN = 0,
|
||||||
@ -133,9 +133,9 @@ enum config_scope {
|
|||||||
CONFIG_SCOPE_CMDLINE,
|
CONFIG_SCOPE_CMDLINE,
|
||||||
};
|
};
|
||||||
|
|
||||||
extern enum config_scope current_config_scope(void);
|
enum config_scope current_config_scope(void);
|
||||||
extern const char *current_config_origin_type(void);
|
const char *current_config_origin_type(void);
|
||||||
extern const char *current_config_name(void);
|
const char *current_config_name(void);
|
||||||
|
|
||||||
struct config_include_data {
|
struct config_include_data {
|
||||||
int depth;
|
int depth;
|
||||||
@ -144,7 +144,7 @@ struct config_include_data {
|
|||||||
const struct config_options *opts;
|
const struct config_options *opts;
|
||||||
};
|
};
|
||||||
#define CONFIG_INCLUDE_INIT { 0 }
|
#define CONFIG_INCLUDE_INIT { 0 }
|
||||||
extern int git_config_include(const char *name, const char *value, void *data);
|
int git_config_include(const char *name, const char *value, void *data);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Match and parse a config key of the form:
|
* Match and parse a config key of the form:
|
||||||
@ -159,7 +159,7 @@ extern int git_config_include(const char *name, const char *value, void *data);
|
|||||||
* If the subsection pointer-to-pointer passed in is NULL, returns 0 only if
|
* If the subsection pointer-to-pointer passed in is NULL, returns 0 only if
|
||||||
* there is no subsection at all.
|
* there is no subsection at all.
|
||||||
*/
|
*/
|
||||||
extern int parse_config_key(const char *var,
|
int parse_config_key(const char *var,
|
||||||
const char *section,
|
const char *section,
|
||||||
const char **subsection, int *subsection_len,
|
const char **subsection, int *subsection_len,
|
||||||
const char **key);
|
const char **key);
|
||||||
@ -192,71 +192,71 @@ struct config_set {
|
|||||||
struct configset_list list;
|
struct configset_list list;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern void git_configset_init(struct config_set *cs);
|
void git_configset_init(struct config_set *cs);
|
||||||
extern int git_configset_add_file(struct config_set *cs, const char *filename);
|
int git_configset_add_file(struct config_set *cs, const char *filename);
|
||||||
extern const struct string_list *git_configset_get_value_multi(struct config_set *cs, const char *key);
|
const struct string_list *git_configset_get_value_multi(struct config_set *cs, const char *key);
|
||||||
extern void git_configset_clear(struct config_set *cs);
|
void git_configset_clear(struct config_set *cs);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* These functions return 1 if not found, and 0 if found, leaving the found
|
* These functions return 1 if not found, and 0 if found, leaving the found
|
||||||
* value in the 'dest' pointer.
|
* value in the 'dest' pointer.
|
||||||
*/
|
*/
|
||||||
extern int git_configset_get_value(struct config_set *cs, const char *key, const char **dest);
|
int git_configset_get_value(struct config_set *cs, const char *key, const char **dest);
|
||||||
extern int git_configset_get_string_const(struct config_set *cs, const char *key, const char **dest);
|
int git_configset_get_string_const(struct config_set *cs, const char *key, const char **dest);
|
||||||
extern int git_configset_get_string(struct config_set *cs, const char *key, char **dest);
|
int git_configset_get_string(struct config_set *cs, const char *key, char **dest);
|
||||||
extern int git_configset_get_int(struct config_set *cs, const char *key, int *dest);
|
int git_configset_get_int(struct config_set *cs, const char *key, int *dest);
|
||||||
extern int git_configset_get_ulong(struct config_set *cs, const char *key, unsigned long *dest);
|
int git_configset_get_ulong(struct config_set *cs, const char *key, unsigned long *dest);
|
||||||
extern int git_configset_get_bool(struct config_set *cs, const char *key, int *dest);
|
int git_configset_get_bool(struct config_set *cs, const char *key, int *dest);
|
||||||
extern int git_configset_get_bool_or_int(struct config_set *cs, const char *key, int *is_bool, int *dest);
|
int git_configset_get_bool_or_int(struct config_set *cs, const char *key, int *is_bool, int *dest);
|
||||||
extern int git_configset_get_maybe_bool(struct config_set *cs, const char *key, int *dest);
|
int git_configset_get_maybe_bool(struct config_set *cs, const char *key, int *dest);
|
||||||
extern int git_configset_get_pathname(struct config_set *cs, const char *key, const char **dest);
|
int git_configset_get_pathname(struct config_set *cs, const char *key, const char **dest);
|
||||||
|
|
||||||
/* Functions for reading a repository's config */
|
/* Functions for reading a repository's config */
|
||||||
struct repository;
|
struct repository;
|
||||||
extern void repo_config(struct repository *repo, config_fn_t fn, void *data);
|
void repo_config(struct repository *repo, config_fn_t fn, void *data);
|
||||||
extern int repo_config_get_value(struct repository *repo,
|
int repo_config_get_value(struct repository *repo,
|
||||||
const char *key, const char **value);
|
const char *key, const char **value);
|
||||||
extern const struct string_list *repo_config_get_value_multi(struct repository *repo,
|
const struct string_list *repo_config_get_value_multi(struct repository *repo,
|
||||||
const char *key);
|
const char *key);
|
||||||
extern int repo_config_get_string_const(struct repository *repo,
|
int repo_config_get_string_const(struct repository *repo,
|
||||||
const char *key, const char **dest);
|
const char *key, const char **dest);
|
||||||
extern int repo_config_get_string(struct repository *repo,
|
int repo_config_get_string(struct repository *repo,
|
||||||
const char *key, char **dest);
|
const char *key, char **dest);
|
||||||
extern int repo_config_get_int(struct repository *repo,
|
int repo_config_get_int(struct repository *repo,
|
||||||
const char *key, int *dest);
|
const char *key, int *dest);
|
||||||
extern int repo_config_get_ulong(struct repository *repo,
|
int repo_config_get_ulong(struct repository *repo,
|
||||||
const char *key, unsigned long *dest);
|
const char *key, unsigned long *dest);
|
||||||
extern int repo_config_get_bool(struct repository *repo,
|
int repo_config_get_bool(struct repository *repo,
|
||||||
const char *key, int *dest);
|
const char *key, int *dest);
|
||||||
extern int repo_config_get_bool_or_int(struct repository *repo,
|
int repo_config_get_bool_or_int(struct repository *repo,
|
||||||
const char *key, int *is_bool, int *dest);
|
const char *key, int *is_bool, int *dest);
|
||||||
extern int repo_config_get_maybe_bool(struct repository *repo,
|
int repo_config_get_maybe_bool(struct repository *repo,
|
||||||
const char *key, int *dest);
|
const char *key, int *dest);
|
||||||
extern int repo_config_get_pathname(struct repository *repo,
|
int repo_config_get_pathname(struct repository *repo,
|
||||||
const char *key, const char **dest);
|
const char *key, const char **dest);
|
||||||
|
|
||||||
extern int git_config_get_value(const char *key, const char **value);
|
int git_config_get_value(const char *key, const char **value);
|
||||||
extern const struct string_list *git_config_get_value_multi(const char *key);
|
const struct string_list *git_config_get_value_multi(const char *key);
|
||||||
extern void git_config_clear(void);
|
void git_config_clear(void);
|
||||||
extern int git_config_get_string_const(const char *key, const char **dest);
|
int git_config_get_string_const(const char *key, const char **dest);
|
||||||
extern int git_config_get_string(const char *key, char **dest);
|
int git_config_get_string(const char *key, char **dest);
|
||||||
extern int git_config_get_int(const char *key, int *dest);
|
int git_config_get_int(const char *key, int *dest);
|
||||||
extern int git_config_get_ulong(const char *key, unsigned long *dest);
|
int git_config_get_ulong(const char *key, unsigned long *dest);
|
||||||
extern int git_config_get_bool(const char *key, int *dest);
|
int git_config_get_bool(const char *key, int *dest);
|
||||||
extern int git_config_get_bool_or_int(const char *key, int *is_bool, int *dest);
|
int git_config_get_bool_or_int(const char *key, int *is_bool, int *dest);
|
||||||
extern int git_config_get_maybe_bool(const char *key, int *dest);
|
int git_config_get_maybe_bool(const char *key, int *dest);
|
||||||
extern int git_config_get_pathname(const char *key, const char **dest);
|
int git_config_get_pathname(const char *key, const char **dest);
|
||||||
extern int git_config_get_index_threads(int *dest);
|
int git_config_get_index_threads(int *dest);
|
||||||
extern int git_config_get_untracked_cache(void);
|
int git_config_get_untracked_cache(void);
|
||||||
extern int git_config_get_split_index(void);
|
int git_config_get_split_index(void);
|
||||||
extern int git_config_get_max_percent_split_change(void);
|
int git_config_get_max_percent_split_change(void);
|
||||||
extern int git_config_get_fsmonitor(void);
|
int git_config_get_fsmonitor(void);
|
||||||
|
|
||||||
/* This dies if the configured or default date is in the future */
|
/* This dies if the configured or default date is in the future */
|
||||||
extern int git_config_get_expiry(const char *key, const char **output);
|
int git_config_get_expiry(const char *key, const char **output);
|
||||||
|
|
||||||
/* parse either "this many days" integer, or "5.days.ago" approxidate */
|
/* parse either "this many days" integer, or "5.days.ago" approxidate */
|
||||||
extern int git_config_get_expiry_in_days(const char *key, timestamp_t *, timestamp_t now);
|
int git_config_get_expiry_in_days(const char *key, timestamp_t *, timestamp_t now);
|
||||||
|
|
||||||
struct key_value_info {
|
struct key_value_info {
|
||||||
const char *filename;
|
const char *filename;
|
||||||
@ -266,7 +266,7 @@ struct key_value_info {
|
|||||||
};
|
};
|
||||||
|
|
||||||
extern NORETURN void git_die_config(const char *key, const char *err, ...) __attribute__((format(printf, 2, 3)));
|
extern NORETURN void git_die_config(const char *key, const char *err, ...) __attribute__((format(printf, 2, 3)));
|
||||||
extern NORETURN void git_die_config_linenr(const char *key, const char *filename, int linenr);
|
NORETURN void git_die_config_linenr(const char *key, const char *filename, int linenr);
|
||||||
|
|
||||||
#define LOOKUP_CONFIG(mapping, var) \
|
#define LOOKUP_CONFIG(mapping, var) \
|
||||||
lookup_config(mapping, ARRAY_SIZE(mapping), var)
|
lookup_config(mapping, ARRAY_SIZE(mapping), var)
|
||||||
|
20
connect.h
20
connect.h
@ -7,19 +7,19 @@
|
|||||||
#define CONNECT_DIAG_URL (1u << 1)
|
#define CONNECT_DIAG_URL (1u << 1)
|
||||||
#define CONNECT_IPV4 (1u << 2)
|
#define CONNECT_IPV4 (1u << 2)
|
||||||
#define CONNECT_IPV6 (1u << 3)
|
#define CONNECT_IPV6 (1u << 3)
|
||||||
extern struct child_process *git_connect(int fd[2], const char *url, const char *prog, int flags);
|
struct child_process *git_connect(int fd[2], const char *url, const char *prog, int flags);
|
||||||
extern int finish_connect(struct child_process *conn);
|
int finish_connect(struct child_process *conn);
|
||||||
extern int git_connection_is_socket(struct child_process *conn);
|
int git_connection_is_socket(struct child_process *conn);
|
||||||
extern int server_supports(const char *feature);
|
int server_supports(const char *feature);
|
||||||
extern int parse_feature_request(const char *features, const char *feature);
|
int parse_feature_request(const char *features, const char *feature);
|
||||||
extern const char *server_feature_value(const char *feature, int *len_ret);
|
const char *server_feature_value(const char *feature, int *len_ret);
|
||||||
extern int url_is_local_not_ssh(const char *url);
|
int url_is_local_not_ssh(const char *url);
|
||||||
|
|
||||||
struct packet_reader;
|
struct packet_reader;
|
||||||
extern enum protocol_version discover_version(struct packet_reader *reader);
|
enum protocol_version discover_version(struct packet_reader *reader);
|
||||||
|
|
||||||
extern int server_supports_v2(const char *c, int die_on_error);
|
int server_supports_v2(const char *c, int die_on_error);
|
||||||
extern int server_supports_feature(const char *c, const char *feature,
|
int server_supports_feature(const char *c, const char *feature,
|
||||||
int die_on_error);
|
int die_on_error);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
20
csum-file.h
20
csum-file.h
@ -25,22 +25,22 @@ struct hashfile_checkpoint {
|
|||||||
git_hash_ctx ctx;
|
git_hash_ctx ctx;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern void hashfile_checkpoint(struct hashfile *, struct hashfile_checkpoint *);
|
void hashfile_checkpoint(struct hashfile *, struct hashfile_checkpoint *);
|
||||||
extern int hashfile_truncate(struct hashfile *, struct hashfile_checkpoint *);
|
int hashfile_truncate(struct hashfile *, struct hashfile_checkpoint *);
|
||||||
|
|
||||||
/* finalize_hashfile flags */
|
/* finalize_hashfile flags */
|
||||||
#define CSUM_CLOSE 1
|
#define CSUM_CLOSE 1
|
||||||
#define CSUM_FSYNC 2
|
#define CSUM_FSYNC 2
|
||||||
#define CSUM_HASH_IN_STREAM 4
|
#define CSUM_HASH_IN_STREAM 4
|
||||||
|
|
||||||
extern struct hashfile *hashfd(int fd, const char *name);
|
struct hashfile *hashfd(int fd, const char *name);
|
||||||
extern struct hashfile *hashfd_check(const char *name);
|
struct hashfile *hashfd_check(const char *name);
|
||||||
extern struct hashfile *hashfd_throughput(int fd, const char *name, struct progress *tp);
|
struct hashfile *hashfd_throughput(int fd, const char *name, struct progress *tp);
|
||||||
extern int finalize_hashfile(struct hashfile *, unsigned char *, unsigned int);
|
int finalize_hashfile(struct hashfile *, unsigned char *, unsigned int);
|
||||||
extern void hashwrite(struct hashfile *, const void *, unsigned int);
|
void hashwrite(struct hashfile *, const void *, unsigned int);
|
||||||
extern void hashflush(struct hashfile *f);
|
void hashflush(struct hashfile *f);
|
||||||
extern void crc32_begin(struct hashfile *);
|
void crc32_begin(struct hashfile *);
|
||||||
extern uint32_t crc32_end(struct hashfile *);
|
uint32_t crc32_end(struct hashfile *);
|
||||||
|
|
||||||
static inline void hashwrite_u8(struct hashfile *f, uint8_t data)
|
static inline void hashwrite_u8(struct hashfile *f, uint8_t data)
|
||||||
{
|
{
|
||||||
|
@ -50,12 +50,12 @@ struct decoration {
|
|||||||
* NULL), returning the previously associated pointer. If there is no previous
|
* NULL), returning the previously associated pointer. If there is no previous
|
||||||
* association, this function returns NULL.
|
* association, this function returns NULL.
|
||||||
*/
|
*/
|
||||||
extern void *add_decoration(struct decoration *n, const struct object *obj, void *decoration);
|
void *add_decoration(struct decoration *n, const struct object *obj, void *decoration);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Return the pointer associated to the given object. If there is no
|
* Return the pointer associated to the given object. If there is no
|
||||||
* association, this function returns NULL.
|
* association, this function returns NULL.
|
||||||
*/
|
*/
|
||||||
extern void *lookup_decoration(struct decoration *n, const struct object *obj);
|
void *lookup_decoration(struct decoration *n, const struct object *obj);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
10
delta.h
10
delta.h
@ -13,7 +13,7 @@ struct delta_index;
|
|||||||
* before free_delta_index() is called. The returned pointer must be freed
|
* before free_delta_index() is called. The returned pointer must be freed
|
||||||
* using free_delta_index().
|
* using free_delta_index().
|
||||||
*/
|
*/
|
||||||
extern struct delta_index *
|
struct delta_index *
|
||||||
create_delta_index(const void *buf, unsigned long bufsize);
|
create_delta_index(const void *buf, unsigned long bufsize);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -21,14 +21,14 @@ create_delta_index(const void *buf, unsigned long bufsize);
|
|||||||
*
|
*
|
||||||
* Given pointer must be what create_delta_index() returned, or NULL.
|
* Given pointer must be what create_delta_index() returned, or NULL.
|
||||||
*/
|
*/
|
||||||
extern void free_delta_index(struct delta_index *index);
|
void free_delta_index(struct delta_index *index);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* sizeof_delta_index: returns memory usage of delta index
|
* sizeof_delta_index: returns memory usage of delta index
|
||||||
*
|
*
|
||||||
* Given pointer must be what create_delta_index() returned, or NULL.
|
* Given pointer must be what create_delta_index() returned, or NULL.
|
||||||
*/
|
*/
|
||||||
extern unsigned long sizeof_delta_index(struct delta_index *index);
|
unsigned long sizeof_delta_index(struct delta_index *index);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* create_delta: create a delta from given index for the given buffer
|
* create_delta: create a delta from given index for the given buffer
|
||||||
@ -40,7 +40,7 @@ extern unsigned long sizeof_delta_index(struct delta_index *index);
|
|||||||
* returned and *delta_size is updated with its size. The returned buffer
|
* returned and *delta_size is updated with its size. The returned buffer
|
||||||
* must be freed by the caller.
|
* must be freed by the caller.
|
||||||
*/
|
*/
|
||||||
extern void *
|
void *
|
||||||
create_delta(const struct delta_index *index,
|
create_delta(const struct delta_index *index,
|
||||||
const void *buf, unsigned long bufsize,
|
const void *buf, unsigned long bufsize,
|
||||||
unsigned long *delta_size, unsigned long max_delta_size);
|
unsigned long *delta_size, unsigned long max_delta_size);
|
||||||
@ -75,7 +75,7 @@ diff_delta(const void *src_buf, unsigned long src_bufsize,
|
|||||||
* *trg_bufsize is updated with its size. On failure a NULL pointer is
|
* *trg_bufsize is updated with its size. On failure a NULL pointer is
|
||||||
* returned. The returned buffer must be freed by the caller.
|
* returned. The returned buffer must be freed by the caller.
|
||||||
*/
|
*/
|
||||||
extern void *patch_delta(const void *src_buf, unsigned long src_size,
|
void *patch_delta(const void *src_buf, unsigned long src_size,
|
||||||
const void *delta_buf, unsigned long delta_size,
|
const void *delta_buf, unsigned long delta_size,
|
||||||
unsigned long *dst_size);
|
unsigned long *dst_size);
|
||||||
|
|
||||||
|
70
dir.h
70
dir.h
@ -202,7 +202,7 @@ struct dir_struct {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/*Count the number of slashes for string s*/
|
/*Count the number of slashes for string s*/
|
||||||
extern int count_slashes(const char *s);
|
int count_slashes(const char *s);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The ordering of these constants is significant, with
|
* The ordering of these constants is significant, with
|
||||||
@ -213,24 +213,24 @@ extern int count_slashes(const char *s);
|
|||||||
#define MATCHED_RECURSIVELY 1
|
#define MATCHED_RECURSIVELY 1
|
||||||
#define MATCHED_FNMATCH 2
|
#define MATCHED_FNMATCH 2
|
||||||
#define MATCHED_EXACTLY 3
|
#define MATCHED_EXACTLY 3
|
||||||
extern int simple_length(const char *match);
|
int simple_length(const char *match);
|
||||||
extern int no_wildcard(const char *string);
|
int no_wildcard(const char *string);
|
||||||
extern char *common_prefix(const struct pathspec *pathspec);
|
char *common_prefix(const struct pathspec *pathspec);
|
||||||
extern int match_pathspec(const struct index_state *istate,
|
int match_pathspec(const struct index_state *istate,
|
||||||
const struct pathspec *pathspec,
|
const struct pathspec *pathspec,
|
||||||
const char *name, int namelen,
|
const char *name, int namelen,
|
||||||
int prefix, char *seen, int is_dir);
|
int prefix, char *seen, int is_dir);
|
||||||
extern int report_path_error(const char *ps_matched, const struct pathspec *pathspec, const char *prefix);
|
int report_path_error(const char *ps_matched, const struct pathspec *pathspec, const char *prefix);
|
||||||
extern int within_depth(const char *name, int namelen, int depth, int max_depth);
|
int within_depth(const char *name, int namelen, int depth, int max_depth);
|
||||||
|
|
||||||
extern int fill_directory(struct dir_struct *dir,
|
int fill_directory(struct dir_struct *dir,
|
||||||
struct index_state *istate,
|
struct index_state *istate,
|
||||||
const struct pathspec *pathspec);
|
const struct pathspec *pathspec);
|
||||||
extern int read_directory(struct dir_struct *, struct index_state *istate,
|
int read_directory(struct dir_struct *, struct index_state *istate,
|
||||||
const char *path, int len,
|
const char *path, int len,
|
||||||
const struct pathspec *pathspec);
|
const struct pathspec *pathspec);
|
||||||
|
|
||||||
extern int is_excluded_from_list(const char *pathname, int pathlen,
|
int is_excluded_from_list(const char *pathname, int pathlen,
|
||||||
const char *basename, int *dtype,
|
const char *basename, int *dtype,
|
||||||
struct exclude_list *el,
|
struct exclude_list *el,
|
||||||
struct index_state *istate);
|
struct index_state *istate);
|
||||||
@ -242,37 +242,37 @@ struct dir_entry *dir_add_ignored(struct dir_struct *dir,
|
|||||||
* these implement the matching logic for dir.c:excluded_from_list and
|
* these implement the matching logic for dir.c:excluded_from_list and
|
||||||
* attr.c:path_matches()
|
* attr.c:path_matches()
|
||||||
*/
|
*/
|
||||||
extern int match_basename(const char *, int,
|
int match_basename(const char *, int,
|
||||||
const char *, int, int, unsigned);
|
const char *, int, int, unsigned);
|
||||||
extern int match_pathname(const char *, int,
|
int match_pathname(const char *, int,
|
||||||
const char *, int,
|
const char *, int,
|
||||||
const char *, int, int, unsigned);
|
const char *, int, int, unsigned);
|
||||||
|
|
||||||
extern struct exclude *last_exclude_matching(struct dir_struct *dir,
|
struct exclude *last_exclude_matching(struct dir_struct *dir,
|
||||||
struct index_state *istate,
|
struct index_state *istate,
|
||||||
const char *name, int *dtype);
|
const char *name, int *dtype);
|
||||||
|
|
||||||
extern int is_excluded(struct dir_struct *dir,
|
int is_excluded(struct dir_struct *dir,
|
||||||
struct index_state *istate,
|
struct index_state *istate,
|
||||||
const char *name, int *dtype);
|
const char *name, int *dtype);
|
||||||
|
|
||||||
extern struct exclude_list *add_exclude_list(struct dir_struct *dir,
|
struct exclude_list *add_exclude_list(struct dir_struct *dir,
|
||||||
int group_type, const char *src);
|
int group_type, const char *src);
|
||||||
extern int add_excludes_from_file_to_list(const char *fname, const char *base, int baselen,
|
int add_excludes_from_file_to_list(const char *fname, const char *base, int baselen,
|
||||||
struct exclude_list *el, struct index_state *istate);
|
struct exclude_list *el, struct index_state *istate);
|
||||||
extern void add_excludes_from_file(struct dir_struct *, const char *fname);
|
void add_excludes_from_file(struct dir_struct *, const char *fname);
|
||||||
extern int add_excludes_from_blob_to_list(struct object_id *oid,
|
int add_excludes_from_blob_to_list(struct object_id *oid,
|
||||||
const char *base, int baselen,
|
const char *base, int baselen,
|
||||||
struct exclude_list *el);
|
struct exclude_list *el);
|
||||||
extern void parse_exclude_pattern(const char **string, int *patternlen, unsigned *flags, int *nowildcardlen);
|
void parse_exclude_pattern(const char **string, int *patternlen, unsigned *flags, int *nowildcardlen);
|
||||||
extern void add_exclude(const char *string, const char *base,
|
void add_exclude(const char *string, const char *base,
|
||||||
int baselen, struct exclude_list *el, int srcpos);
|
int baselen, struct exclude_list *el, int srcpos);
|
||||||
extern void clear_exclude_list(struct exclude_list *el);
|
void clear_exclude_list(struct exclude_list *el);
|
||||||
extern void clear_directory(struct dir_struct *dir);
|
void clear_directory(struct dir_struct *dir);
|
||||||
extern int file_exists(const char *);
|
int file_exists(const char *);
|
||||||
|
|
||||||
extern int is_inside_dir(const char *dir);
|
int is_inside_dir(const char *dir);
|
||||||
extern int dir_inside_of(const char *subdir, const char *dir);
|
int dir_inside_of(const char *subdir, const char *dir);
|
||||||
|
|
||||||
static inline int is_dot_or_dotdot(const char *name)
|
static inline int is_dot_or_dotdot(const char *name)
|
||||||
{
|
{
|
||||||
@ -281,9 +281,9 @@ static inline int is_dot_or_dotdot(const char *name)
|
|||||||
(name[1] == '.' && name[2] == '\0')));
|
(name[1] == '.' && name[2] == '\0')));
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int is_empty_dir(const char *dir);
|
int is_empty_dir(const char *dir);
|
||||||
|
|
||||||
extern void setup_standard_excludes(struct dir_struct *dir);
|
void setup_standard_excludes(struct dir_struct *dir);
|
||||||
|
|
||||||
|
|
||||||
/* Constants for remove_dir_recursively: */
|
/* Constants for remove_dir_recursively: */
|
||||||
@ -311,23 +311,23 @@ extern void setup_standard_excludes(struct dir_struct *dir);
|
|||||||
* This function uses path as temporary scratch space, but restores it
|
* This function uses path as temporary scratch space, but restores it
|
||||||
* before returning.
|
* before returning.
|
||||||
*/
|
*/
|
||||||
extern int remove_dir_recursively(struct strbuf *path, int flag);
|
int remove_dir_recursively(struct strbuf *path, int flag);
|
||||||
|
|
||||||
/* tries to remove the path with empty directories along it, ignores ENOENT */
|
/* tries to remove the path with empty directories along it, ignores ENOENT */
|
||||||
extern int remove_path(const char *path);
|
int remove_path(const char *path);
|
||||||
|
|
||||||
extern int fspathcmp(const char *a, const char *b);
|
int fspathcmp(const char *a, const char *b);
|
||||||
extern int fspathncmp(const char *a, const char *b, size_t count);
|
int fspathncmp(const char *a, const char *b, size_t count);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The prefix part of pattern must not contains wildcards.
|
* The prefix part of pattern must not contains wildcards.
|
||||||
*/
|
*/
|
||||||
struct pathspec_item;
|
struct pathspec_item;
|
||||||
extern int git_fnmatch(const struct pathspec_item *item,
|
int git_fnmatch(const struct pathspec_item *item,
|
||||||
const char *pattern, const char *string,
|
const char *pattern, const char *string,
|
||||||
int prefix);
|
int prefix);
|
||||||
|
|
||||||
extern int submodule_path_match(const struct index_state *istate,
|
int submodule_path_match(const struct index_state *istate,
|
||||||
const struct pathspec *ps,
|
const struct pathspec *ps,
|
||||||
const char *submodule_name,
|
const char *submodule_name,
|
||||||
char *seen);
|
char *seen);
|
||||||
@ -372,10 +372,10 @@ void remove_untracked_cache(struct index_state *istate);
|
|||||||
* When `recurse_into_nested` is set, recurse into any nested submodules,
|
* When `recurse_into_nested` is set, recurse into any nested submodules,
|
||||||
* connecting them as well.
|
* connecting them as well.
|
||||||
*/
|
*/
|
||||||
extern void connect_work_tree_and_git_dir(const char *work_tree,
|
void connect_work_tree_and_git_dir(const char *work_tree,
|
||||||
const char *git_dir,
|
const char *git_dir,
|
||||||
int recurse_into_nested);
|
int recurse_into_nested);
|
||||||
extern void relocate_gitdir(const char *path,
|
void relocate_gitdir(const char *path,
|
||||||
const char *old_git_dir,
|
const char *old_git_dir,
|
||||||
const char *new_git_dir);
|
const char *new_git_dir);
|
||||||
#endif
|
#endif
|
||||||
|
14
exec-cmd.h
14
exec-cmd.h
@ -3,14 +3,14 @@
|
|||||||
|
|
||||||
struct argv_array;
|
struct argv_array;
|
||||||
|
|
||||||
extern void git_set_exec_path(const char *exec_path);
|
void git_set_exec_path(const char *exec_path);
|
||||||
extern void git_resolve_executable_dir(const char *path);
|
void git_resolve_executable_dir(const char *path);
|
||||||
extern const char *git_exec_path(void);
|
const char *git_exec_path(void);
|
||||||
extern void setup_path(void);
|
void setup_path(void);
|
||||||
extern const char **prepare_git_cmd(struct argv_array *out, const char **argv);
|
const char **prepare_git_cmd(struct argv_array *out, const char **argv);
|
||||||
extern int execv_git_cmd(const char **argv); /* NULL terminated */
|
int execv_git_cmd(const char **argv); /* NULL terminated */
|
||||||
LAST_ARG_MUST_BE_NULL
|
LAST_ARG_MUST_BE_NULL
|
||||||
extern int execl_git_cmd(const char *cmd, ...);
|
extern int execl_git_cmd(const char *cmd, ...);
|
||||||
extern char *system_path(const char *path);
|
char *system_path(const char *path);
|
||||||
|
|
||||||
#endif /* GIT_EXEC_CMD_H */
|
#endif /* GIT_EXEC_CMD_H */
|
||||||
|
@ -2,6 +2,6 @@
|
|||||||
#define FMT_MERGE_MSG_H
|
#define FMT_MERGE_MSG_H
|
||||||
|
|
||||||
extern int merge_log_config;
|
extern int merge_log_config;
|
||||||
extern int fmt_merge_msg_config(const char *key, const char *value, void *cb);
|
int fmt_merge_msg_config(const char *key, const char *value, void *cb);
|
||||||
|
|
||||||
#endif /* FMT_MERGE_MSG_H */
|
#endif /* FMT_MERGE_MSG_H */
|
||||||
|
14
fsmonitor.h
14
fsmonitor.h
@ -10,31 +10,31 @@ extern struct trace_key trace_fsmonitor;
|
|||||||
* Read the fsmonitor index extension and (if configured) restore the
|
* Read the fsmonitor index extension and (if configured) restore the
|
||||||
* CE_FSMONITOR_VALID state.
|
* CE_FSMONITOR_VALID state.
|
||||||
*/
|
*/
|
||||||
extern int read_fsmonitor_extension(struct index_state *istate, const void *data, unsigned long sz);
|
int read_fsmonitor_extension(struct index_state *istate, const void *data, unsigned long sz);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Fill the fsmonitor_dirty ewah bits with their state from the index,
|
* Fill the fsmonitor_dirty ewah bits with their state from the index,
|
||||||
* before it is split during writing.
|
* before it is split during writing.
|
||||||
*/
|
*/
|
||||||
extern void fill_fsmonitor_bitmap(struct index_state *istate);
|
void fill_fsmonitor_bitmap(struct index_state *istate);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Write the CE_FSMONITOR_VALID state into the fsmonitor index
|
* Write the CE_FSMONITOR_VALID state into the fsmonitor index
|
||||||
* extension. Reads from the fsmonitor_dirty ewah in the index.
|
* extension. Reads from the fsmonitor_dirty ewah in the index.
|
||||||
*/
|
*/
|
||||||
extern void write_fsmonitor_extension(struct strbuf *sb, struct index_state *istate);
|
void write_fsmonitor_extension(struct strbuf *sb, struct index_state *istate);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Add/remove the fsmonitor index extension
|
* Add/remove the fsmonitor index extension
|
||||||
*/
|
*/
|
||||||
extern void add_fsmonitor(struct index_state *istate);
|
void add_fsmonitor(struct index_state *istate);
|
||||||
extern void remove_fsmonitor(struct index_state *istate);
|
void remove_fsmonitor(struct index_state *istate);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Add/remove the fsmonitor index extension as necessary based on the current
|
* Add/remove the fsmonitor index extension as necessary based on the current
|
||||||
* core.fsmonitor setting.
|
* core.fsmonitor setting.
|
||||||
*/
|
*/
|
||||||
extern void tweak_fsmonitor(struct index_state *istate);
|
void tweak_fsmonitor(struct index_state *istate);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Run the configured fsmonitor integration script and clear the
|
* Run the configured fsmonitor integration script and clear the
|
||||||
@ -42,7 +42,7 @@ extern void tweak_fsmonitor(struct index_state *istate);
|
|||||||
* any corresponding untracked cache directory structures. Optimized to only
|
* any corresponding untracked cache directory structures. Optimized to only
|
||||||
* run the first time it is called.
|
* run the first time it is called.
|
||||||
*/
|
*/
|
||||||
extern void refresh_fsmonitor(struct index_state *istate);
|
void refresh_fsmonitor(struct index_state *istate);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set the given cache entries CE_FSMONITOR_VALID bit. This should be
|
* Set the given cache entries CE_FSMONITOR_VALID bit. This should be
|
||||||
|
@ -28,11 +28,11 @@
|
|||||||
|
|
||||||
#define FORMAT_PRESERVING(n) __attribute__((format_arg(n)))
|
#define FORMAT_PRESERVING(n) __attribute__((format_arg(n)))
|
||||||
|
|
||||||
extern int use_gettext_poison(void);
|
int use_gettext_poison(void);
|
||||||
|
|
||||||
#ifndef NO_GETTEXT
|
#ifndef NO_GETTEXT
|
||||||
extern void git_setup_gettext(void);
|
void git_setup_gettext(void);
|
||||||
extern int gettext_width(const char *s);
|
int gettext_width(const char *s);
|
||||||
#else
|
#else
|
||||||
static inline void git_setup_gettext(void)
|
static inline void git_setup_gettext(void)
|
||||||
{
|
{
|
||||||
@ -87,6 +87,6 @@ const char *Q_(const char *msgid, const char *plu, unsigned long n)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *get_preferred_languages(void);
|
const char *get_preferred_languages(void);
|
||||||
extern int is_utf8_locale(void);
|
int is_utf8_locale(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -249,7 +249,7 @@ typedef unsigned long uintptr_t;
|
|||||||
|
|
||||||
#ifdef MKDIR_WO_TRAILING_SLASH
|
#ifdef MKDIR_WO_TRAILING_SLASH
|
||||||
#define mkdir(a,b) compat_mkdir_wo_trailing_slash((a),(b))
|
#define mkdir(a,b) compat_mkdir_wo_trailing_slash((a),(b))
|
||||||
extern int compat_mkdir_wo_trailing_slash(const char*, mode_t);
|
int compat_mkdir_wo_trailing_slash(const char*, mode_t);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef NO_STRUCT_ITIMERVAL
|
#ifdef NO_STRUCT_ITIMERVAL
|
||||||
@ -267,9 +267,9 @@ struct itimerval {
|
|||||||
#include <libgen.h>
|
#include <libgen.h>
|
||||||
#else
|
#else
|
||||||
#define basename gitbasename
|
#define basename gitbasename
|
||||||
extern char *gitbasename(char *);
|
char *gitbasename(char *);
|
||||||
#define dirname gitdirname
|
#define dirname gitdirname
|
||||||
extern char *gitdirname(char *);
|
char *gitdirname(char *);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef NO_ICONV
|
#ifndef NO_ICONV
|
||||||
@ -446,8 +446,8 @@ static inline char *git_find_last_dir_sep(const char *path)
|
|||||||
struct strbuf;
|
struct strbuf;
|
||||||
|
|
||||||
/* General helper functions */
|
/* General helper functions */
|
||||||
extern void vreportf(const char *prefix, const char *err, va_list params);
|
void vreportf(const char *prefix, const char *err, va_list params);
|
||||||
extern NORETURN void usage(const char *err);
|
NORETURN void usage(const char *err);
|
||||||
extern NORETURN void usagef(const char *err, ...) __attribute__((format (printf, 1, 2)));
|
extern NORETURN void usagef(const char *err, ...) __attribute__((format (printf, 1, 2)));
|
||||||
extern NORETURN void die(const char *err, ...) __attribute__((format (printf, 1, 2)));
|
extern NORETURN void die(const char *err, ...) __attribute__((format (printf, 1, 2)));
|
||||||
extern NORETURN void die_errno(const char *err, ...) __attribute__((format (printf, 1, 2)));
|
extern NORETURN void die_errno(const char *err, ...) __attribute__((format (printf, 1, 2)));
|
||||||
@ -482,15 +482,15 @@ static inline int const_error(void)
|
|||||||
#define error_errno(...) (error_errno(__VA_ARGS__), const_error())
|
#define error_errno(...) (error_errno(__VA_ARGS__), const_error())
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern void set_die_routine(NORETURN_PTR void (*routine)(const char *err, va_list params));
|
void set_die_routine(NORETURN_PTR void (*routine)(const char *err, va_list params));
|
||||||
extern void set_error_routine(void (*routine)(const char *err, va_list params));
|
void set_error_routine(void (*routine)(const char *err, va_list params));
|
||||||
extern void (*get_error_routine(void))(const char *err, va_list params);
|
extern void (*get_error_routine(void))(const char *err, va_list params);
|
||||||
extern void set_warn_routine(void (*routine)(const char *warn, va_list params));
|
void set_warn_routine(void (*routine)(const char *warn, va_list params));
|
||||||
extern void (*get_warn_routine(void))(const char *warn, va_list params);
|
extern void (*get_warn_routine(void))(const char *warn, va_list params);
|
||||||
extern void set_die_is_recursing_routine(int (*routine)(void));
|
void set_die_is_recursing_routine(int (*routine)(void));
|
||||||
|
|
||||||
extern int starts_with(const char *str, const char *prefix);
|
int starts_with(const char *str, const char *prefix);
|
||||||
extern int istarts_with(const char *str, const char *prefix);
|
int istarts_with(const char *str, const char *prefix);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If the string "str" begins with the string found in "prefix", return 1.
|
* If the string "str" begins with the string found in "prefix", return 1.
|
||||||
@ -613,8 +613,8 @@ static inline int ends_with(const char *str, const char *suffix)
|
|||||||
|
|
||||||
#define mmap git_mmap
|
#define mmap git_mmap
|
||||||
#define munmap git_munmap
|
#define munmap git_munmap
|
||||||
extern void *git_mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset);
|
void *git_mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset);
|
||||||
extern int git_munmap(void *start, size_t length);
|
int git_munmap(void *start, size_t length);
|
||||||
|
|
||||||
#else /* NO_MMAP || USE_WIN32_MMAP */
|
#else /* NO_MMAP || USE_WIN32_MMAP */
|
||||||
|
|
||||||
@ -668,17 +668,17 @@ extern int git_munmap(void *start, size_t length);
|
|||||||
#undef stat
|
#undef stat
|
||||||
#endif
|
#endif
|
||||||
#define stat(path, buf) git_stat(path, buf)
|
#define stat(path, buf) git_stat(path, buf)
|
||||||
extern int git_stat(const char *, struct stat *);
|
int git_stat(const char *, struct stat *);
|
||||||
#ifdef fstat
|
#ifdef fstat
|
||||||
#undef fstat
|
#undef fstat
|
||||||
#endif
|
#endif
|
||||||
#define fstat(fd, buf) git_fstat(fd, buf)
|
#define fstat(fd, buf) git_fstat(fd, buf)
|
||||||
extern int git_fstat(int, struct stat *);
|
int git_fstat(int, struct stat *);
|
||||||
#ifdef lstat
|
#ifdef lstat
|
||||||
#undef lstat
|
#undef lstat
|
||||||
#endif
|
#endif
|
||||||
#define lstat(path, buf) git_lstat(path, buf)
|
#define lstat(path, buf) git_lstat(path, buf)
|
||||||
extern int git_lstat(const char *, struct stat *);
|
int git_lstat(const char *, struct stat *);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define DEFAULT_PACKED_GIT_LIMIT \
|
#define DEFAULT_PACKED_GIT_LIMIT \
|
||||||
@ -686,50 +686,50 @@ extern int git_lstat(const char *, struct stat *);
|
|||||||
|
|
||||||
#ifdef NO_PREAD
|
#ifdef NO_PREAD
|
||||||
#define pread git_pread
|
#define pread git_pread
|
||||||
extern ssize_t git_pread(int fd, void *buf, size_t count, off_t offset);
|
ssize_t git_pread(int fd, void *buf, size_t count, off_t offset);
|
||||||
#endif
|
#endif
|
||||||
/*
|
/*
|
||||||
* Forward decl that will remind us if its twin in cache.h changes.
|
* Forward decl that will remind us if its twin in cache.h changes.
|
||||||
* This function is used in compat/pread.c. But we can't include
|
* This function is used in compat/pread.c. But we can't include
|
||||||
* cache.h there.
|
* cache.h there.
|
||||||
*/
|
*/
|
||||||
extern ssize_t read_in_full(int fd, void *buf, size_t count);
|
ssize_t read_in_full(int fd, void *buf, size_t count);
|
||||||
|
|
||||||
#ifdef NO_SETENV
|
#ifdef NO_SETENV
|
||||||
#define setenv gitsetenv
|
#define setenv gitsetenv
|
||||||
extern int gitsetenv(const char *, const char *, int);
|
int gitsetenv(const char *, const char *, int);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef NO_MKDTEMP
|
#ifdef NO_MKDTEMP
|
||||||
#define mkdtemp gitmkdtemp
|
#define mkdtemp gitmkdtemp
|
||||||
extern char *gitmkdtemp(char *);
|
char *gitmkdtemp(char *);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef NO_UNSETENV
|
#ifdef NO_UNSETENV
|
||||||
#define unsetenv gitunsetenv
|
#define unsetenv gitunsetenv
|
||||||
extern void gitunsetenv(const char *);
|
void gitunsetenv(const char *);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef NO_STRCASESTR
|
#ifdef NO_STRCASESTR
|
||||||
#define strcasestr gitstrcasestr
|
#define strcasestr gitstrcasestr
|
||||||
extern char *gitstrcasestr(const char *haystack, const char *needle);
|
char *gitstrcasestr(const char *haystack, const char *needle);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef NO_STRLCPY
|
#ifdef NO_STRLCPY
|
||||||
#define strlcpy gitstrlcpy
|
#define strlcpy gitstrlcpy
|
||||||
extern size_t gitstrlcpy(char *, const char *, size_t);
|
size_t gitstrlcpy(char *, const char *, size_t);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef NO_STRTOUMAX
|
#ifdef NO_STRTOUMAX
|
||||||
#define strtoumax gitstrtoumax
|
#define strtoumax gitstrtoumax
|
||||||
extern uintmax_t gitstrtoumax(const char *, char **, int);
|
uintmax_t gitstrtoumax(const char *, char **, int);
|
||||||
#define strtoimax gitstrtoimax
|
#define strtoimax gitstrtoimax
|
||||||
extern intmax_t gitstrtoimax(const char *, char **, int);
|
intmax_t gitstrtoimax(const char *, char **, int);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef NO_HSTRERROR
|
#ifdef NO_HSTRERROR
|
||||||
#define hstrerror githstrerror
|
#define hstrerror githstrerror
|
||||||
extern const char *githstrerror(int herror);
|
const char *githstrerror(int herror);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef NO_MEMMEM
|
#ifdef NO_MEMMEM
|
||||||
@ -761,7 +761,7 @@ char *gitstrdup(const char *s);
|
|||||||
# endif
|
# endif
|
||||||
# define fopen(a,b) git_fopen(a,b)
|
# define fopen(a,b) git_fopen(a,b)
|
||||||
# endif
|
# endif
|
||||||
extern FILE *git_fopen(const char*, const char*);
|
FILE *git_fopen(const char*, const char*);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef SNPRINTF_RETURNS_BOGUS
|
#ifdef SNPRINTF_RETURNS_BOGUS
|
||||||
@ -775,7 +775,7 @@ extern int git_snprintf(char *str, size_t maxsize,
|
|||||||
#undef vsnprintf
|
#undef vsnprintf
|
||||||
#endif
|
#endif
|
||||||
#define vsnprintf git_vsnprintf
|
#define vsnprintf git_vsnprintf
|
||||||
extern int git_vsnprintf(char *str, size_t maxsize,
|
int git_vsnprintf(char *str, size_t maxsize,
|
||||||
const char *format, va_list ap);
|
const char *format, va_list ap);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -805,11 +805,11 @@ const char *inet_ntop(int af, const void *src, char *dst, size_t size);
|
|||||||
|
|
||||||
#ifdef NO_PTHREADS
|
#ifdef NO_PTHREADS
|
||||||
#define atexit git_atexit
|
#define atexit git_atexit
|
||||||
extern int git_atexit(void (*handler)(void));
|
int git_atexit(void (*handler)(void));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef void (*try_to_free_t)(size_t);
|
typedef void (*try_to_free_t)(size_t);
|
||||||
extern try_to_free_t set_try_to_free_routine(try_to_free_t);
|
try_to_free_t set_try_to_free_routine(try_to_free_t);
|
||||||
|
|
||||||
static inline size_t st_add(size_t a, size_t b)
|
static inline size_t st_add(size_t a, size_t b)
|
||||||
{
|
{
|
||||||
@ -845,28 +845,28 @@ static inline size_t st_sub(size_t a, size_t b)
|
|||||||
# define xalloca(size) (xmalloc(size))
|
# define xalloca(size) (xmalloc(size))
|
||||||
# define xalloca_free(p) (free(p))
|
# define xalloca_free(p) (free(p))
|
||||||
#endif
|
#endif
|
||||||
extern char *xstrdup(const char *str);
|
char *xstrdup(const char *str);
|
||||||
extern void *xmalloc(size_t size);
|
void *xmalloc(size_t size);
|
||||||
extern void *xmallocz(size_t size);
|
void *xmallocz(size_t size);
|
||||||
extern void *xmallocz_gently(size_t size);
|
void *xmallocz_gently(size_t size);
|
||||||
extern void *xmemdupz(const void *data, size_t len);
|
void *xmemdupz(const void *data, size_t len);
|
||||||
extern char *xstrndup(const char *str, size_t len);
|
char *xstrndup(const char *str, size_t len);
|
||||||
extern void *xrealloc(void *ptr, size_t size);
|
void *xrealloc(void *ptr, size_t size);
|
||||||
extern void *xcalloc(size_t nmemb, size_t size);
|
void *xcalloc(size_t nmemb, size_t size);
|
||||||
extern void *xmmap(void *start, size_t length, int prot, int flags, int fd, off_t offset);
|
void *xmmap(void *start, size_t length, int prot, int flags, int fd, off_t offset);
|
||||||
extern void *xmmap_gently(void *start, size_t length, int prot, int flags, int fd, off_t offset);
|
void *xmmap_gently(void *start, size_t length, int prot, int flags, int fd, off_t offset);
|
||||||
extern int xopen(const char *path, int flags, ...);
|
extern int xopen(const char *path, int flags, ...);
|
||||||
extern ssize_t xread(int fd, void *buf, size_t len);
|
ssize_t xread(int fd, void *buf, size_t len);
|
||||||
extern ssize_t xwrite(int fd, const void *buf, size_t len);
|
ssize_t xwrite(int fd, const void *buf, size_t len);
|
||||||
extern ssize_t xpread(int fd, void *buf, size_t len, off_t offset);
|
ssize_t xpread(int fd, void *buf, size_t len, off_t offset);
|
||||||
extern int xdup(int fd);
|
int xdup(int fd);
|
||||||
extern FILE *xfopen(const char *path, const char *mode);
|
FILE *xfopen(const char *path, const char *mode);
|
||||||
extern FILE *xfdopen(int fd, const char *mode);
|
FILE *xfdopen(int fd, const char *mode);
|
||||||
extern int xmkstemp(char *temp_filename);
|
int xmkstemp(char *temp_filename);
|
||||||
extern int xmkstemp_mode(char *temp_filename, int mode);
|
int xmkstemp_mode(char *temp_filename, int mode);
|
||||||
extern char *xgetcwd(void);
|
char *xgetcwd(void);
|
||||||
extern FILE *fopen_for_writing(const char *path);
|
FILE *fopen_for_writing(const char *path);
|
||||||
extern FILE *fopen_or_warn(const char *path, const char *mode);
|
FILE *fopen_or_warn(const char *path, const char *mode);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* FREE_AND_NULL(ptr) is like free(ptr) followed by ptr = NULL. Note
|
* FREE_AND_NULL(ptr) is like free(ptr) followed by ptr = NULL. Note
|
||||||
@ -972,7 +972,7 @@ extern int xsnprintf(char *dst, size_t max, const char *fmt, ...);
|
|||||||
#define HOST_NAME_MAX 256
|
#define HOST_NAME_MAX 256
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern int xgethostname(char *buf, size_t len);
|
int xgethostname(char *buf, size_t len);
|
||||||
|
|
||||||
/* in ctype.c, for kwset users */
|
/* in ctype.c, for kwset users */
|
||||||
extern const unsigned char tolower_trans_tbl[256];
|
extern const unsigned char tolower_trans_tbl[256];
|
||||||
@ -1257,7 +1257,7 @@ static inline int is_missing_file_error(int errno_)
|
|||||||
return (errno_ == ENOENT || errno_ == ENOTDIR);
|
return (errno_ == ENOENT || errno_ == ENOTDIR);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int cmd_main(int, const char **);
|
int cmd_main(int, const char **);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Intercept all calls to exit() and route them to trace2 to
|
* Intercept all calls to exit() and route them to trace2 to
|
||||||
@ -1280,7 +1280,7 @@ int trace2_cmd_exit_fl(const char *file, int line, int code);
|
|||||||
* an annotation, and does nothing in non-leak-checking builds.
|
* an annotation, and does nothing in non-leak-checking builds.
|
||||||
*/
|
*/
|
||||||
#ifdef SUPPRESS_ANNOTATED_LEAKS
|
#ifdef SUPPRESS_ANNOTATED_LEAKS
|
||||||
extern void unleak_memory(const void *ptr, size_t len);
|
void unleak_memory(const void *ptr, size_t len);
|
||||||
#define UNLEAK(var) unleak_memory(&(var), sizeof(var))
|
#define UNLEAK(var) unleak_memory(&(var), sizeof(var))
|
||||||
#else
|
#else
|
||||||
#define UNLEAK(var) do {} while (0)
|
#define UNLEAK(var) do {} while (0)
|
||||||
|
22
grep.h
22
grep.h
@ -186,17 +186,17 @@ struct grep_opt {
|
|||||||
void *output_priv;
|
void *output_priv;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern void init_grep_defaults(struct repository *);
|
void init_grep_defaults(struct repository *);
|
||||||
extern int grep_config(const char *var, const char *value, void *);
|
int grep_config(const char *var, const char *value, void *);
|
||||||
extern void grep_init(struct grep_opt *, struct repository *repo, const char *prefix);
|
void grep_init(struct grep_opt *, struct repository *repo, const char *prefix);
|
||||||
void grep_commit_pattern_type(enum grep_pattern_type, struct grep_opt *opt);
|
void grep_commit_pattern_type(enum grep_pattern_type, struct grep_opt *opt);
|
||||||
|
|
||||||
extern void append_grep_pat(struct grep_opt *opt, const char *pat, size_t patlen, const char *origin, int no, enum grep_pat_token t);
|
void append_grep_pat(struct grep_opt *opt, const char *pat, size_t patlen, const char *origin, int no, enum grep_pat_token t);
|
||||||
extern void append_grep_pattern(struct grep_opt *opt, const char *pat, const char *origin, int no, enum grep_pat_token t);
|
void append_grep_pattern(struct grep_opt *opt, const char *pat, const char *origin, int no, enum grep_pat_token t);
|
||||||
extern void append_header_grep_pattern(struct grep_opt *, enum grep_header_field, const char *);
|
void append_header_grep_pattern(struct grep_opt *, enum grep_header_field, const char *);
|
||||||
extern void compile_grep_patterns(struct grep_opt *opt);
|
void compile_grep_patterns(struct grep_opt *opt);
|
||||||
extern void free_grep_patterns(struct grep_opt *opt);
|
void free_grep_patterns(struct grep_opt *opt);
|
||||||
extern int grep_buffer(struct grep_opt *opt, char *buf, unsigned long size);
|
int grep_buffer(struct grep_opt *opt, char *buf, unsigned long size);
|
||||||
|
|
||||||
struct grep_source {
|
struct grep_source {
|
||||||
char *name;
|
char *name;
|
||||||
@ -226,8 +226,8 @@ void grep_source_load_driver(struct grep_source *gs,
|
|||||||
|
|
||||||
int grep_source(struct grep_opt *opt, struct grep_source *gs);
|
int grep_source(struct grep_opt *opt, struct grep_source *gs);
|
||||||
|
|
||||||
extern struct grep_opt *grep_opt_dup(const struct grep_opt *opt);
|
struct grep_opt *grep_opt_dup(const struct grep_opt *opt);
|
||||||
extern int grep_threads_ok(const struct grep_opt *opt);
|
int grep_threads_ok(const struct grep_opt *opt);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Mutex used around access to the attributes machinery if
|
* Mutex used around access to the attributes machinery if
|
||||||
|
30
hashmap.h
30
hashmap.h
@ -104,11 +104,11 @@
|
|||||||
* `memihash_cont` is a variant of `memihash` that allows a computation to be
|
* `memihash_cont` is a variant of `memihash` that allows a computation to be
|
||||||
* continued with another chunk of data.
|
* continued with another chunk of data.
|
||||||
*/
|
*/
|
||||||
extern unsigned int strhash(const char *buf);
|
unsigned int strhash(const char *buf);
|
||||||
extern unsigned int strihash(const char *buf);
|
unsigned int strihash(const char *buf);
|
||||||
extern unsigned int memhash(const void *buf, size_t len);
|
unsigned int memhash(const void *buf, size_t len);
|
||||||
extern unsigned int memihash(const void *buf, size_t len);
|
unsigned int memihash(const void *buf, size_t len);
|
||||||
extern unsigned int memihash_cont(unsigned int hash_seed, const void *buf, size_t len);
|
unsigned int memihash_cont(unsigned int hash_seed, const void *buf, size_t len);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Converts a cryptographic hash (e.g. SHA-1) into an int-sized hash code
|
* Converts a cryptographic hash (e.g. SHA-1) into an int-sized hash code
|
||||||
@ -216,7 +216,7 @@ struct hashmap {
|
|||||||
* parameter may be used to preallocate a sufficiently large table and thus
|
* parameter may be used to preallocate a sufficiently large table and thus
|
||||||
* prevent expensive resizing. If 0, the table is dynamically resized.
|
* prevent expensive resizing. If 0, the table is dynamically resized.
|
||||||
*/
|
*/
|
||||||
extern void hashmap_init(struct hashmap *map,
|
void hashmap_init(struct hashmap *map,
|
||||||
hashmap_cmp_fn equals_function,
|
hashmap_cmp_fn equals_function,
|
||||||
const void *equals_function_data,
|
const void *equals_function_data,
|
||||||
size_t initial_size);
|
size_t initial_size);
|
||||||
@ -227,7 +227,7 @@ extern void hashmap_init(struct hashmap *map,
|
|||||||
* If `free_entries` is true, each hashmap_entry in the map is freed as well
|
* If `free_entries` is true, each hashmap_entry in the map is freed as well
|
||||||
* using stdlibs free().
|
* using stdlibs free().
|
||||||
*/
|
*/
|
||||||
extern void hashmap_free(struct hashmap *map, int free_entries);
|
void hashmap_free(struct hashmap *map, int free_entries);
|
||||||
|
|
||||||
/* hashmap_entry functions */
|
/* hashmap_entry functions */
|
||||||
|
|
||||||
@ -284,7 +284,7 @@ static inline unsigned int hashmap_get_size(struct hashmap *map)
|
|||||||
* If an entry with matching hash code is found, `key` and `keydata` are passed
|
* If an entry with matching hash code is found, `key` and `keydata` are passed
|
||||||
* to `hashmap_cmp_fn` to decide whether the entry matches the key.
|
* to `hashmap_cmp_fn` to decide whether the entry matches the key.
|
||||||
*/
|
*/
|
||||||
extern void *hashmap_get(const struct hashmap *map, const void *key,
|
void *hashmap_get(const struct hashmap *map, const void *key,
|
||||||
const void *keydata);
|
const void *keydata);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -316,7 +316,7 @@ static inline void *hashmap_get_from_hash(const struct hashmap *map,
|
|||||||
* `entry` is the hashmap_entry to start the search from, obtained via a previous
|
* `entry` is the hashmap_entry to start the search from, obtained via a previous
|
||||||
* call to `hashmap_get` or `hashmap_get_next`.
|
* call to `hashmap_get` or `hashmap_get_next`.
|
||||||
*/
|
*/
|
||||||
extern void *hashmap_get_next(const struct hashmap *map, const void *entry);
|
void *hashmap_get_next(const struct hashmap *map, const void *entry);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Adds a hashmap entry. This allows to add duplicate entries (i.e.
|
* Adds a hashmap entry. This allows to add duplicate entries (i.e.
|
||||||
@ -325,7 +325,7 @@ extern void *hashmap_get_next(const struct hashmap *map, const void *entry);
|
|||||||
* `map` is the hashmap structure.
|
* `map` is the hashmap structure.
|
||||||
* `entry` is the entry to add.
|
* `entry` is the entry to add.
|
||||||
*/
|
*/
|
||||||
extern void hashmap_add(struct hashmap *map, void *entry);
|
void hashmap_add(struct hashmap *map, void *entry);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Adds or replaces a hashmap entry. If the hashmap contains duplicate
|
* Adds or replaces a hashmap entry. If the hashmap contains duplicate
|
||||||
@ -335,7 +335,7 @@ extern void hashmap_add(struct hashmap *map, void *entry);
|
|||||||
* `entry` is the entry to add or replace.
|
* `entry` is the entry to add or replace.
|
||||||
* Returns the replaced entry, or NULL if not found (i.e. the entry was added).
|
* Returns the replaced entry, or NULL if not found (i.e. the entry was added).
|
||||||
*/
|
*/
|
||||||
extern void *hashmap_put(struct hashmap *map, void *entry);
|
void *hashmap_put(struct hashmap *map, void *entry);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Removes a hashmap entry matching the specified key. If the hashmap contains
|
* Removes a hashmap entry matching the specified key. If the hashmap contains
|
||||||
@ -344,7 +344,7 @@ extern void *hashmap_put(struct hashmap *map, void *entry);
|
|||||||
*
|
*
|
||||||
* Argument explanation is the same as in `hashmap_get`.
|
* Argument explanation is the same as in `hashmap_get`.
|
||||||
*/
|
*/
|
||||||
extern void *hashmap_remove(struct hashmap *map, const void *key,
|
void *hashmap_remove(struct hashmap *map, const void *key,
|
||||||
const void *keydata);
|
const void *keydata);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -365,10 +365,10 @@ struct hashmap_iter {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* Initializes a `hashmap_iter` structure. */
|
/* Initializes a `hashmap_iter` structure. */
|
||||||
extern void hashmap_iter_init(struct hashmap *map, struct hashmap_iter *iter);
|
void hashmap_iter_init(struct hashmap *map, struct hashmap_iter *iter);
|
||||||
|
|
||||||
/* Returns the next hashmap_entry, or NULL if there are no more entries. */
|
/* Returns the next hashmap_entry, or NULL if there are no more entries. */
|
||||||
extern void *hashmap_iter_next(struct hashmap_iter *iter);
|
void *hashmap_iter_next(struct hashmap_iter *iter);
|
||||||
|
|
||||||
/* Initializes the iterator and returns the first entry, if any. */
|
/* Initializes the iterator and returns the first entry, if any. */
|
||||||
static inline void *hashmap_iter_first(struct hashmap *map,
|
static inline void *hashmap_iter_first(struct hashmap *map,
|
||||||
@ -429,7 +429,7 @@ static inline void hashmap_enable_item_counting(struct hashmap *map)
|
|||||||
*
|
*
|
||||||
* Uses a hashmap to store the pool of interned strings.
|
* Uses a hashmap to store the pool of interned strings.
|
||||||
*/
|
*/
|
||||||
extern const void *memintern(const void *data, size_t len);
|
const void *memintern(const void *data, size_t len);
|
||||||
static inline const char *strintern(const char *string)
|
static inline const char *strintern(const char *string)
|
||||||
{
|
{
|
||||||
return memintern(string, strlen(string));
|
return memintern(string, strlen(string));
|
||||||
|
30
help.h
30
help.h
@ -19,31 +19,31 @@ static inline void mput_char(char c, unsigned int num)
|
|||||||
putchar(c);
|
putchar(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern void list_common_cmds_help(void);
|
void list_common_cmds_help(void);
|
||||||
extern void list_all_cmds_help(void);
|
void list_all_cmds_help(void);
|
||||||
extern void list_common_guides_help(void);
|
void list_common_guides_help(void);
|
||||||
extern void list_config_help(int for_human);
|
void list_config_help(int for_human);
|
||||||
|
|
||||||
extern void list_all_main_cmds(struct string_list *list);
|
void list_all_main_cmds(struct string_list *list);
|
||||||
extern void list_all_other_cmds(struct string_list *list);
|
void list_all_other_cmds(struct string_list *list);
|
||||||
extern void list_cmds_by_category(struct string_list *list,
|
void list_cmds_by_category(struct string_list *list,
|
||||||
const char *category);
|
const char *category);
|
||||||
extern void list_cmds_by_config(struct string_list *list);
|
void list_cmds_by_config(struct string_list *list);
|
||||||
extern const char *help_unknown_cmd(const char *cmd);
|
const char *help_unknown_cmd(const char *cmd);
|
||||||
extern void load_command_list(const char *prefix,
|
void load_command_list(const char *prefix,
|
||||||
struct cmdnames *main_cmds,
|
struct cmdnames *main_cmds,
|
||||||
struct cmdnames *other_cmds);
|
struct cmdnames *other_cmds);
|
||||||
extern void add_cmdname(struct cmdnames *cmds, const char *name, int len);
|
void add_cmdname(struct cmdnames *cmds, const char *name, int len);
|
||||||
/* Here we require that excludes is a sorted list. */
|
/* Here we require that excludes is a sorted list. */
|
||||||
extern void exclude_cmds(struct cmdnames *cmds, struct cmdnames *excludes);
|
void exclude_cmds(struct cmdnames *cmds, struct cmdnames *excludes);
|
||||||
extern int is_in_cmdlist(struct cmdnames *cmds, const char *name);
|
int is_in_cmdlist(struct cmdnames *cmds, const char *name);
|
||||||
extern void list_commands(unsigned int colopts, struct cmdnames *main_cmds, struct cmdnames *other_cmds);
|
void list_commands(unsigned int colopts, struct cmdnames *main_cmds, struct cmdnames *other_cmds);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* call this to die(), when it is suspected that the user mistyped a
|
* call this to die(), when it is suspected that the user mistyped a
|
||||||
* ref to the command, to give suggested "correct" refs.
|
* ref to the command, to give suggested "correct" refs.
|
||||||
*/
|
*/
|
||||||
extern void help_unknown_ref(const char *ref, const char *cmd, const char *error);
|
void help_unknown_ref(const char *ref, const char *cmd, const char *error);
|
||||||
|
|
||||||
static inline void list_config_item(struct string_list *list,
|
static inline void list_config_item(struct string_list *list,
|
||||||
const char *prefix,
|
const char *prefix,
|
||||||
|
52
http.h
52
http.h
@ -75,18 +75,18 @@ struct buffer {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* Curl request read/write callbacks */
|
/* Curl request read/write callbacks */
|
||||||
extern size_t fread_buffer(char *ptr, size_t eltsize, size_t nmemb, void *strbuf);
|
size_t fread_buffer(char *ptr, size_t eltsize, size_t nmemb, void *strbuf);
|
||||||
extern size_t fwrite_buffer(char *ptr, size_t eltsize, size_t nmemb, void *strbuf);
|
size_t fwrite_buffer(char *ptr, size_t eltsize, size_t nmemb, void *strbuf);
|
||||||
extern size_t fwrite_null(char *ptr, size_t eltsize, size_t nmemb, void *strbuf);
|
size_t fwrite_null(char *ptr, size_t eltsize, size_t nmemb, void *strbuf);
|
||||||
#ifndef NO_CURL_IOCTL
|
#ifndef NO_CURL_IOCTL
|
||||||
extern curlioerr ioctl_buffer(CURL *handle, int cmd, void *clientp);
|
curlioerr ioctl_buffer(CURL *handle, int cmd, void *clientp);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Slot lifecycle functions */
|
/* Slot lifecycle functions */
|
||||||
extern struct active_request_slot *get_active_slot(void);
|
struct active_request_slot *get_active_slot(void);
|
||||||
extern int start_active_slot(struct active_request_slot *slot);
|
int start_active_slot(struct active_request_slot *slot);
|
||||||
extern void run_active_slot(struct active_request_slot *slot);
|
void run_active_slot(struct active_request_slot *slot);
|
||||||
extern void finish_all_active_slots(void);
|
void finish_all_active_slots(void);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This will run one slot to completion in a blocking manner, similar to how
|
* This will run one slot to completion in a blocking manner, similar to how
|
||||||
@ -98,15 +98,15 @@ int run_one_slot(struct active_request_slot *slot,
|
|||||||
struct slot_results *results);
|
struct slot_results *results);
|
||||||
|
|
||||||
#ifdef USE_CURL_MULTI
|
#ifdef USE_CURL_MULTI
|
||||||
extern void fill_active_slots(void);
|
void fill_active_slots(void);
|
||||||
extern void add_fill_function(void *data, int (*fill)(void *));
|
void add_fill_function(void *data, int (*fill)(void *));
|
||||||
extern void step_active_slots(void);
|
void step_active_slots(void);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern void http_init(struct remote *remote, const char *url,
|
void http_init(struct remote *remote, const char *url,
|
||||||
int proactive_auth);
|
int proactive_auth);
|
||||||
extern void http_cleanup(void);
|
void http_cleanup(void);
|
||||||
extern struct curl_slist *http_copy_default_headers(void);
|
struct curl_slist *http_copy_default_headers(void);
|
||||||
|
|
||||||
extern long int git_curl_ipresolve;
|
extern long int git_curl_ipresolve;
|
||||||
extern int active_requests;
|
extern int active_requests;
|
||||||
@ -146,10 +146,10 @@ void normalize_curl_result(CURLcode *result, long http_code, char *errorstr,
|
|||||||
size_t errorlen);
|
size_t errorlen);
|
||||||
|
|
||||||
/* Helpers for modifying and creating URLs */
|
/* Helpers for modifying and creating URLs */
|
||||||
extern void append_remote_object_url(struct strbuf *buf, const char *url,
|
void append_remote_object_url(struct strbuf *buf, const char *url,
|
||||||
const char *hex,
|
const char *hex,
|
||||||
int only_two_digit_prefix);
|
int only_two_digit_prefix);
|
||||||
extern char *get_remote_object_url(const char *url, const char *hex,
|
char *get_remote_object_url(const char *url, const char *hex,
|
||||||
int only_two_digit_prefix);
|
int only_two_digit_prefix);
|
||||||
|
|
||||||
/* Options for http_get_*() */
|
/* Options for http_get_*() */
|
||||||
@ -204,10 +204,10 @@ struct http_get_options {
|
|||||||
*/
|
*/
|
||||||
int http_get_strbuf(const char *url, struct strbuf *result, struct http_get_options *options);
|
int http_get_strbuf(const char *url, struct strbuf *result, struct http_get_options *options);
|
||||||
|
|
||||||
extern int http_fetch_ref(const char *base, struct ref *ref);
|
int http_fetch_ref(const char *base, struct ref *ref);
|
||||||
|
|
||||||
/* Helpers for fetching packs */
|
/* Helpers for fetching packs */
|
||||||
extern int http_get_info_packs(const char *base_url,
|
int http_get_info_packs(const char *base_url,
|
||||||
struct packed_git **packs_head);
|
struct packed_git **packs_head);
|
||||||
|
|
||||||
struct http_pack_request {
|
struct http_pack_request {
|
||||||
@ -219,10 +219,10 @@ struct http_pack_request {
|
|||||||
struct active_request_slot *slot;
|
struct active_request_slot *slot;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern struct http_pack_request *new_http_pack_request(
|
struct http_pack_request *new_http_pack_request(
|
||||||
struct packed_git *target, const char *base_url);
|
struct packed_git *target, const char *base_url);
|
||||||
extern int finish_http_pack_request(struct http_pack_request *preq);
|
int finish_http_pack_request(struct http_pack_request *preq);
|
||||||
extern void release_http_pack_request(struct http_pack_request *preq);
|
void release_http_pack_request(struct http_pack_request *preq);
|
||||||
|
|
||||||
/* Helpers for fetching object */
|
/* Helpers for fetching object */
|
||||||
struct http_object_request {
|
struct http_object_request {
|
||||||
@ -241,12 +241,12 @@ struct http_object_request {
|
|||||||
struct active_request_slot *slot;
|
struct active_request_slot *slot;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern struct http_object_request *new_http_object_request(
|
struct http_object_request *new_http_object_request(
|
||||||
const char *base_url, const struct object_id *oid);
|
const char *base_url, const struct object_id *oid);
|
||||||
extern void process_http_object_request(struct http_object_request *freq);
|
void process_http_object_request(struct http_object_request *freq);
|
||||||
extern int finish_http_object_request(struct http_object_request *freq);
|
int finish_http_object_request(struct http_object_request *freq);
|
||||||
extern void abort_http_object_request(struct http_object_request *freq);
|
void abort_http_object_request(struct http_object_request *freq);
|
||||||
extern void release_http_object_request(struct http_object_request *freq);
|
void release_http_object_request(struct http_object_request *freq);
|
||||||
|
|
||||||
/* setup routine for curl_easy_setopt CURLOPT_DEBUGFUNCTION */
|
/* setup routine for curl_easy_setopt CURLOPT_DEBUGFUNCTION */
|
||||||
void setup_curl_trace(CURL *handle);
|
void setup_curl_trace(CURL *handle);
|
||||||
|
10
kwset.h
10
kwset.h
@ -37,16 +37,16 @@ typedef struct kwset_t* kwset_t;
|
|||||||
if enough memory cannot be obtained. The argument if non-NULL
|
if enough memory cannot be obtained. The argument if non-NULL
|
||||||
specifies a table of character translations to be applied to all
|
specifies a table of character translations to be applied to all
|
||||||
pattern and search text. */
|
pattern and search text. */
|
||||||
extern kwset_t kwsalloc(unsigned char const *);
|
kwset_t kwsalloc(unsigned char const *);
|
||||||
|
|
||||||
/* Incrementally extend the keyword set to include the given string.
|
/* Incrementally extend the keyword set to include the given string.
|
||||||
Return NULL for success, or an error message. Remember an index
|
Return NULL for success, or an error message. Remember an index
|
||||||
number for each keyword included in the set. */
|
number for each keyword included in the set. */
|
||||||
extern const char *kwsincr(kwset_t, char const *, size_t);
|
const char *kwsincr(kwset_t, char const *, size_t);
|
||||||
|
|
||||||
/* When the keyword set has been completely built, prepare it for
|
/* When the keyword set has been completely built, prepare it for
|
||||||
use. Return NULL for success, or an error message. */
|
use. Return NULL for success, or an error message. */
|
||||||
extern const char *kwsprep(kwset_t);
|
const char *kwsprep(kwset_t);
|
||||||
|
|
||||||
/* Search through the given buffer for a member of the keyword set.
|
/* Search through the given buffer for a member of the keyword set.
|
||||||
Return a pointer to the leftmost longest match found, or NULL if
|
Return a pointer to the leftmost longest match found, or NULL if
|
||||||
@ -54,8 +54,8 @@ extern const char *kwsprep(kwset_t);
|
|||||||
the matching substring in the integer it points to. Similarly,
|
the matching substring in the integer it points to. Similarly,
|
||||||
if foundindex is non-NULL, store the index of the particular
|
if foundindex is non-NULL, store the index of the particular
|
||||||
keyword found therein. */
|
keyword found therein. */
|
||||||
extern size_t kwsexec(kwset_t, char const *, size_t, struct kwsmatch *);
|
size_t kwsexec(kwset_t, char const *, size_t, struct kwsmatch *);
|
||||||
|
|
||||||
/* Deallocate the given keyword set and all its associated storage. */
|
/* Deallocate the given keyword set and all its associated storage. */
|
||||||
extern void kwsfree(kwset_t);
|
void kwsfree(kwset_t);
|
||||||
|
|
||||||
|
16
line-log.h
16
line-log.h
@ -25,17 +25,17 @@ struct diff_ranges {
|
|||||||
struct range_set target;
|
struct range_set target;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern void range_set_init(struct range_set *, size_t prealloc);
|
void range_set_init(struct range_set *, size_t prealloc);
|
||||||
extern void range_set_release(struct range_set *);
|
void range_set_release(struct range_set *);
|
||||||
/* Range includes start; excludes end */
|
/* Range includes start; excludes end */
|
||||||
extern void range_set_append_unsafe(struct range_set *, long start, long end);
|
void range_set_append_unsafe(struct range_set *, long start, long end);
|
||||||
/* New range must begin at or after end of last added range */
|
/* New range must begin at or after end of last added range */
|
||||||
extern void range_set_append(struct range_set *, long start, long end);
|
void range_set_append(struct range_set *, long start, long end);
|
||||||
/*
|
/*
|
||||||
* In-place pass of sorting and merging the ranges in the range set,
|
* In-place pass of sorting and merging the ranges in the range set,
|
||||||
* to sort and make the ranges disjoint.
|
* to sort and make the ranges disjoint.
|
||||||
*/
|
*/
|
||||||
extern void sort_and_merge_range_set(struct range_set *);
|
void sort_and_merge_range_set(struct range_set *);
|
||||||
|
|
||||||
/* Linked list of interesting files and their associated ranges. The
|
/* Linked list of interesting files and their associated ranges. The
|
||||||
* list must be kept sorted by path.
|
* list must be kept sorted by path.
|
||||||
@ -54,10 +54,10 @@ struct line_log_data {
|
|||||||
struct diff_ranges diff;
|
struct diff_ranges diff;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern void line_log_init(struct rev_info *rev, const char *prefix, struct string_list *args);
|
void line_log_init(struct rev_info *rev, const char *prefix, struct string_list *args);
|
||||||
|
|
||||||
extern int line_log_filter(struct rev_info *rev);
|
int line_log_filter(struct rev_info *rev);
|
||||||
|
|
||||||
extern int line_log_print(struct rev_info *rev, struct commit *commit);
|
int line_log_print(struct rev_info *rev, struct commit *commit);
|
||||||
|
|
||||||
#endif /* LINE_LOG_H */
|
#endif /* LINE_LOG_H */
|
||||||
|
10
lockfile.h
10
lockfile.h
@ -159,7 +159,7 @@ struct lock_file {
|
|||||||
* timeout_ms is -1, retry indefinitely. The flags argument and error
|
* timeout_ms is -1, retry indefinitely. The flags argument and error
|
||||||
* handling are described above.
|
* handling are described above.
|
||||||
*/
|
*/
|
||||||
extern int hold_lock_file_for_update_timeout(
|
int hold_lock_file_for_update_timeout(
|
||||||
struct lock_file *lk, const char *path,
|
struct lock_file *lk, const char *path,
|
||||||
int flags, long timeout_ms);
|
int flags, long timeout_ms);
|
||||||
|
|
||||||
@ -188,7 +188,7 @@ static inline int is_lock_file_locked(struct lock_file *lk)
|
|||||||
* of `hold_lock_file_for_update()` to lock `path`. `err` should be the
|
* of `hold_lock_file_for_update()` to lock `path`. `err` should be the
|
||||||
* `errno` set by the failing call.
|
* `errno` set by the failing call.
|
||||||
*/
|
*/
|
||||||
extern void unable_to_lock_message(const char *path, int err,
|
void unable_to_lock_message(const char *path, int err,
|
||||||
struct strbuf *buf);
|
struct strbuf *buf);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -197,7 +197,7 @@ extern void unable_to_lock_message(const char *path, int err,
|
|||||||
* `errno` set by the failing
|
* `errno` set by the failing
|
||||||
* call.
|
* call.
|
||||||
*/
|
*/
|
||||||
extern NORETURN void unable_to_lock_die(const char *path, int err);
|
NORETURN void unable_to_lock_die(const char *path, int err);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Associate a stdio stream with the lockfile (which must still be
|
* Associate a stdio stream with the lockfile (which must still be
|
||||||
@ -234,7 +234,7 @@ static inline FILE *get_lock_file_fp(struct lock_file *lk)
|
|||||||
* Return the path of the file that is locked by the specified
|
* Return the path of the file that is locked by the specified
|
||||||
* lock_file object. The caller must free the memory.
|
* lock_file object. The caller must free the memory.
|
||||||
*/
|
*/
|
||||||
extern char *get_locked_file_path(struct lock_file *lk);
|
char *get_locked_file_path(struct lock_file *lk);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If the lockfile is still open, close it (and the file pointer if it
|
* If the lockfile is still open, close it (and the file pointer if it
|
||||||
@ -282,7 +282,7 @@ static inline int reopen_lock_file(struct lock_file *lk)
|
|||||||
* call `commit_lock_file()` for a `lock_file` object that is not
|
* call `commit_lock_file()` for a `lock_file` object that is not
|
||||||
* currently locked.
|
* currently locked.
|
||||||
*/
|
*/
|
||||||
extern int commit_lock_file(struct lock_file *lk);
|
int commit_lock_file(struct lock_file *lk);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Like `commit_lock_file()`, but rename the lockfile to the provided
|
* Like `commit_lock_file()`, but rename the lockfile to the provided
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
struct repository;
|
struct repository;
|
||||||
struct argv_array;
|
struct argv_array;
|
||||||
struct packet_reader;
|
struct packet_reader;
|
||||||
extern int ls_refs(struct repository *r, struct argv_array *keys,
|
int ls_refs(struct repository *r, struct argv_array *keys,
|
||||||
struct packet_reader *request);
|
struct packet_reader *request);
|
||||||
|
|
||||||
#endif /* LS_REFS_H */
|
#endif /* LS_REFS_H */
|
||||||
|
@ -39,8 +39,8 @@ struct mailinfo {
|
|||||||
int input_error;
|
int input_error;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern void setup_mailinfo(struct mailinfo *);
|
void setup_mailinfo(struct mailinfo *);
|
||||||
extern int mailinfo(struct mailinfo *, const char *msg, const char *patch);
|
int mailinfo(struct mailinfo *, const char *msg, const char *patch);
|
||||||
extern void clear_mailinfo(struct mailinfo *);
|
void clear_mailinfo(struct mailinfo *);
|
||||||
|
|
||||||
#endif /* MAILINFO_H */
|
#endif /* MAILINFO_H */
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
struct blob;
|
struct blob;
|
||||||
struct index_state;
|
struct index_state;
|
||||||
|
|
||||||
extern void *merge_blobs(struct index_state *, const char *,
|
void *merge_blobs(struct index_state *, const char *,
|
||||||
struct blob *, struct blob *,
|
struct blob *, struct blob *,
|
||||||
struct blob *, unsigned long *);
|
struct blob *, unsigned long *);
|
||||||
|
|
||||||
|
@ -162,7 +162,7 @@ const char *loose_object_path(struct repository *r, struct strbuf *buf,
|
|||||||
void *map_loose_object(struct repository *r, const struct object_id *oid,
|
void *map_loose_object(struct repository *r, const struct object_id *oid,
|
||||||
unsigned long *size);
|
unsigned long *size);
|
||||||
|
|
||||||
extern void *read_object_file_extended(struct repository *r,
|
void *read_object_file_extended(struct repository *r,
|
||||||
const struct object_id *oid,
|
const struct object_id *oid,
|
||||||
enum object_type *type,
|
enum object_type *type,
|
||||||
unsigned long *size, int lookup_replace);
|
unsigned long *size, int lookup_replace);
|
||||||
@ -180,20 +180,20 @@ static inline void *repo_read_object_file(struct repository *r,
|
|||||||
/* Read and unpack an object file into memory, write memory to an object file */
|
/* Read and unpack an object file into memory, write memory to an object file */
|
||||||
int oid_object_info(struct repository *r, const struct object_id *, unsigned long *);
|
int oid_object_info(struct repository *r, const struct object_id *, unsigned long *);
|
||||||
|
|
||||||
extern int hash_object_file(const void *buf, unsigned long len,
|
int hash_object_file(const void *buf, unsigned long len,
|
||||||
const char *type, struct object_id *oid);
|
const char *type, struct object_id *oid);
|
||||||
|
|
||||||
extern int write_object_file(const void *buf, unsigned long len,
|
int write_object_file(const void *buf, unsigned long len,
|
||||||
const char *type, struct object_id *oid);
|
const char *type, struct object_id *oid);
|
||||||
|
|
||||||
extern int hash_object_file_literally(const void *buf, unsigned long len,
|
int hash_object_file_literally(const void *buf, unsigned long len,
|
||||||
const char *type, struct object_id *oid,
|
const char *type, struct object_id *oid,
|
||||||
unsigned flags);
|
unsigned flags);
|
||||||
|
|
||||||
extern int pretend_object_file(void *, unsigned long, enum object_type,
|
int pretend_object_file(void *, unsigned long, enum object_type,
|
||||||
struct object_id *oid);
|
struct object_id *oid);
|
||||||
|
|
||||||
extern int force_object_loose(const struct object_id *oid, time_t mtime);
|
int force_object_loose(const struct object_id *oid, time_t mtime);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Open the loose object at path, check its hash, and return the contents,
|
* Open the loose object at path, check its hash, and return the contents,
|
||||||
@ -227,9 +227,9 @@ int repo_has_object_file_with_flags(struct repository *r,
|
|||||||
* with the specified name. This function does not respect replace
|
* with the specified name. This function does not respect replace
|
||||||
* references.
|
* references.
|
||||||
*/
|
*/
|
||||||
extern int has_loose_object_nonlocal(const struct object_id *);
|
int has_loose_object_nonlocal(const struct object_id *);
|
||||||
|
|
||||||
extern void assert_oid_type(const struct object_id *oid, enum object_type expect);
|
void assert_oid_type(const struct object_id *oid, enum object_type expect);
|
||||||
|
|
||||||
struct object_info {
|
struct object_info {
|
||||||
/* Request */
|
/* Request */
|
||||||
|
12
object.h
12
object.h
@ -90,19 +90,19 @@ struct object {
|
|||||||
struct object_id oid;
|
struct object_id oid;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern const char *type_name(unsigned int type);
|
const char *type_name(unsigned int type);
|
||||||
extern int type_from_string_gently(const char *str, ssize_t, int gentle);
|
int type_from_string_gently(const char *str, ssize_t, int gentle);
|
||||||
#define type_from_string(str) type_from_string_gently(str, -1, 0)
|
#define type_from_string(str) type_from_string_gently(str, -1, 0)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Return the current number of buckets in the object hashmap.
|
* Return the current number of buckets in the object hashmap.
|
||||||
*/
|
*/
|
||||||
extern unsigned int get_max_object_index(void);
|
unsigned int get_max_object_index(void);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Return the object from the specified bucket in the object hashmap.
|
* Return the object from the specified bucket in the object hashmap.
|
||||||
*/
|
*/
|
||||||
extern struct object *get_indexed_object(unsigned int);
|
struct object *get_indexed_object(unsigned int);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This can be used to see if we have heard of the object before, but
|
* This can be used to see if we have heard of the object before, but
|
||||||
@ -118,7 +118,7 @@ extern struct object *get_indexed_object(unsigned int);
|
|||||||
*/
|
*/
|
||||||
struct object *lookup_object(struct repository *r, const unsigned char *sha1);
|
struct object *lookup_object(struct repository *r, const unsigned char *sha1);
|
||||||
|
|
||||||
extern void *create_object(struct repository *r, const unsigned char *sha1, void *obj);
|
void *create_object(struct repository *r, const unsigned char *sha1, void *obj);
|
||||||
|
|
||||||
void *object_as_type(struct repository *r, struct object *obj, enum object_type type, int quiet);
|
void *object_as_type(struct repository *r, struct object *obj, enum object_type type, int quiet);
|
||||||
|
|
||||||
@ -189,6 +189,6 @@ void clear_object_flags(unsigned flags);
|
|||||||
/*
|
/*
|
||||||
* Clear the specified object flags from all in-core commit objects.
|
* Clear the specified object flags from all in-core commit objects.
|
||||||
*/
|
*/
|
||||||
extern void clear_commit_marks_all(unsigned int flags);
|
void clear_commit_marks_all(unsigned int flags);
|
||||||
|
|
||||||
#endif /* OBJECT_H */
|
#endif /* OBJECT_H */
|
||||||
|
10
oidmap.h
10
oidmap.h
@ -33,7 +33,7 @@ struct oidmap {
|
|||||||
* parameter may be used to preallocate a sufficiently large table and thus
|
* parameter may be used to preallocate a sufficiently large table and thus
|
||||||
* prevent expensive resizing. If 0, the table is dynamically resized.
|
* prevent expensive resizing. If 0, the table is dynamically resized.
|
||||||
*/
|
*/
|
||||||
extern void oidmap_init(struct oidmap *map, size_t initial_size);
|
void oidmap_init(struct oidmap *map, size_t initial_size);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Frees an oidmap structure and allocated memory.
|
* Frees an oidmap structure and allocated memory.
|
||||||
@ -41,12 +41,12 @@ extern void oidmap_init(struct oidmap *map, size_t initial_size);
|
|||||||
* If `free_entries` is true, each oidmap_entry in the map is freed as well
|
* If `free_entries` is true, each oidmap_entry in the map is freed as well
|
||||||
* using stdlibs free().
|
* using stdlibs free().
|
||||||
*/
|
*/
|
||||||
extern void oidmap_free(struct oidmap *map, int free_entries);
|
void oidmap_free(struct oidmap *map, int free_entries);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Returns the oidmap entry for the specified oid, or NULL if not found.
|
* Returns the oidmap entry for the specified oid, or NULL if not found.
|
||||||
*/
|
*/
|
||||||
extern void *oidmap_get(const struct oidmap *map,
|
void *oidmap_get(const struct oidmap *map,
|
||||||
const struct object_id *key);
|
const struct object_id *key);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -57,14 +57,14 @@ extern void *oidmap_get(const struct oidmap *map,
|
|||||||
*
|
*
|
||||||
* Returns the replaced entry, or NULL if not found (i.e. the entry was added).
|
* Returns the replaced entry, or NULL if not found (i.e. the entry was added).
|
||||||
*/
|
*/
|
||||||
extern void *oidmap_put(struct oidmap *map, void *entry);
|
void *oidmap_put(struct oidmap *map, void *entry);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Removes an oidmap entry matching the specified oid.
|
* Removes an oidmap entry matching the specified oid.
|
||||||
*
|
*
|
||||||
* Returns the removed entry, or NULL if not found.
|
* Returns the removed entry, or NULL if not found.
|
||||||
*/
|
*/
|
||||||
extern void *oidmap_remove(struct oidmap *map, const struct object_id *key);
|
void *oidmap_remove(struct oidmap *map, const struct object_id *key);
|
||||||
|
|
||||||
|
|
||||||
struct oidmap_iter {
|
struct oidmap_iter {
|
||||||
|
24
pack.h
24
pack.h
@ -55,7 +55,7 @@ struct pack_idx_option {
|
|||||||
uint32_t *anomaly;
|
uint32_t *anomaly;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern void reset_pack_idx_option(struct pack_idx_option *);
|
void reset_pack_idx_option(struct pack_idx_option *);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Packed object index header
|
* Packed object index header
|
||||||
@ -79,28 +79,28 @@ struct progress;
|
|||||||
/* Note, the data argument could be NULL if object type is blob */
|
/* Note, the data argument could be NULL if object type is blob */
|
||||||
typedef int (*verify_fn)(const struct object_id *, enum object_type, unsigned long, void*, int*);
|
typedef int (*verify_fn)(const struct object_id *, enum object_type, unsigned long, void*, int*);
|
||||||
|
|
||||||
extern const char *write_idx_file(const char *index_name, struct pack_idx_entry **objects, int nr_objects, const struct pack_idx_option *, const unsigned char *sha1);
|
const char *write_idx_file(const char *index_name, struct pack_idx_entry **objects, int nr_objects, const struct pack_idx_option *, const unsigned char *sha1);
|
||||||
extern int check_pack_crc(struct packed_git *p, struct pack_window **w_curs, off_t offset, off_t len, unsigned int nr);
|
int check_pack_crc(struct packed_git *p, struct pack_window **w_curs, off_t offset, off_t len, unsigned int nr);
|
||||||
extern int verify_pack_index(struct packed_git *);
|
int verify_pack_index(struct packed_git *);
|
||||||
extern int verify_pack(struct repository *, struct packed_git *, verify_fn fn, struct progress *, uint32_t);
|
int verify_pack(struct repository *, struct packed_git *, verify_fn fn, struct progress *, uint32_t);
|
||||||
extern off_t write_pack_header(struct hashfile *f, uint32_t);
|
off_t write_pack_header(struct hashfile *f, uint32_t);
|
||||||
extern void fixup_pack_header_footer(int, unsigned char *, const char *, uint32_t, unsigned char *, off_t);
|
void fixup_pack_header_footer(int, unsigned char *, const char *, uint32_t, unsigned char *, off_t);
|
||||||
extern char *index_pack_lockfile(int fd);
|
char *index_pack_lockfile(int fd);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The "hdr" output buffer should be at least this big, which will handle sizes
|
* The "hdr" output buffer should be at least this big, which will handle sizes
|
||||||
* up to 2^67.
|
* up to 2^67.
|
||||||
*/
|
*/
|
||||||
#define MAX_PACK_OBJECT_HEADER 10
|
#define MAX_PACK_OBJECT_HEADER 10
|
||||||
extern int encode_in_pack_object_header(unsigned char *hdr, int hdr_len,
|
int encode_in_pack_object_header(unsigned char *hdr, int hdr_len,
|
||||||
enum object_type, uintmax_t);
|
enum object_type, uintmax_t);
|
||||||
|
|
||||||
#define PH_ERROR_EOF (-1)
|
#define PH_ERROR_EOF (-1)
|
||||||
#define PH_ERROR_PACK_SIGNATURE (-2)
|
#define PH_ERROR_PACK_SIGNATURE (-2)
|
||||||
#define PH_ERROR_PROTOCOL (-3)
|
#define PH_ERROR_PROTOCOL (-3)
|
||||||
extern int read_pack_header(int fd, struct pack_header *);
|
int read_pack_header(int fd, struct pack_header *);
|
||||||
|
|
||||||
extern struct hashfile *create_tmp_packfile(char **pack_tmp_name);
|
struct hashfile *create_tmp_packfile(char **pack_tmp_name);
|
||||||
extern void finish_tmp_packfile(struct strbuf *name_buffer, const char *pack_tmp_name, struct pack_idx_entry **written_list, uint32_t nr_written, struct pack_idx_option *pack_idx_opts, unsigned char sha1[]);
|
void finish_tmp_packfile(struct strbuf *name_buffer, const char *pack_tmp_name, struct pack_idx_entry **written_list, uint32_t nr_written, struct pack_idx_option *pack_idx_opts, unsigned char sha1[]);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
74
packfile.h
74
packfile.h
@ -15,23 +15,23 @@ struct object_info;
|
|||||||
*
|
*
|
||||||
* Example: odb_pack_name(out, sha1, "idx") => ".git/objects/pack/pack-1234..idx"
|
* Example: odb_pack_name(out, sha1, "idx") => ".git/objects/pack/pack-1234..idx"
|
||||||
*/
|
*/
|
||||||
extern char *odb_pack_name(struct strbuf *buf, const unsigned char *sha1, const char *ext);
|
char *odb_pack_name(struct strbuf *buf, const unsigned char *sha1, const char *ext);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Return the name of the (local) packfile with the specified sha1 in
|
* Return the name of the (local) packfile with the specified sha1 in
|
||||||
* its name. The return value is a pointer to memory that is
|
* its name. The return value is a pointer to memory that is
|
||||||
* overwritten each time this function is called.
|
* overwritten each time this function is called.
|
||||||
*/
|
*/
|
||||||
extern char *sha1_pack_name(const unsigned char *sha1);
|
char *sha1_pack_name(const unsigned char *sha1);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Return the name of the (local) pack index file with the specified
|
* Return the name of the (local) pack index file with the specified
|
||||||
* sha1 in its name. The return value is a pointer to memory that is
|
* sha1 in its name. The return value is a pointer to memory that is
|
||||||
* overwritten each time this function is called.
|
* overwritten each time this function is called.
|
||||||
*/
|
*/
|
||||||
extern char *sha1_pack_index_name(const unsigned char *sha1);
|
char *sha1_pack_index_name(const unsigned char *sha1);
|
||||||
|
|
||||||
extern struct packed_git *parse_pack_index(unsigned char *sha1, const char *idx_path);
|
struct packed_git *parse_pack_index(unsigned char *sha1, const char *idx_path);
|
||||||
|
|
||||||
typedef void each_file_in_pack_dir_fn(const char *full_path, size_t full_path_len,
|
typedef void each_file_in_pack_dir_fn(const char *full_path, size_t full_path_len,
|
||||||
const char *file_pach, void *data);
|
const char *file_pach, void *data);
|
||||||
@ -45,8 +45,8 @@ void for_each_file_in_pack_dir(const char *objdir,
|
|||||||
#define PACKDIR_FILE_GARBAGE 4
|
#define PACKDIR_FILE_GARBAGE 4
|
||||||
extern void (*report_garbage)(unsigned seen_bits, const char *path);
|
extern void (*report_garbage)(unsigned seen_bits, const char *path);
|
||||||
|
|
||||||
extern void reprepare_packed_git(struct repository *r);
|
void reprepare_packed_git(struct repository *r);
|
||||||
extern void install_packed_git(struct repository *r, struct packed_git *pack);
|
void install_packed_git(struct repository *r, struct packed_git *pack);
|
||||||
|
|
||||||
struct packed_git *get_packed_git(struct repository *r);
|
struct packed_git *get_packed_git(struct repository *r);
|
||||||
struct list_head *get_packed_git_mru(struct repository *r);
|
struct list_head *get_packed_git_mru(struct repository *r);
|
||||||
@ -59,34 +59,34 @@ struct packed_git *get_all_packs(struct repository *r);
|
|||||||
*/
|
*/
|
||||||
unsigned long approximate_object_count(void);
|
unsigned long approximate_object_count(void);
|
||||||
|
|
||||||
extern struct packed_git *find_sha1_pack(const unsigned char *sha1,
|
struct packed_git *find_sha1_pack(const unsigned char *sha1,
|
||||||
struct packed_git *packs);
|
struct packed_git *packs);
|
||||||
|
|
||||||
extern void pack_report(void);
|
void pack_report(void);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* mmap the index file for the specified packfile (if it is not
|
* mmap the index file for the specified packfile (if it is not
|
||||||
* already mmapped). Return 0 on success.
|
* already mmapped). Return 0 on success.
|
||||||
*/
|
*/
|
||||||
extern int open_pack_index(struct packed_git *);
|
int open_pack_index(struct packed_git *);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* munmap the index file for the specified packfile (if it is
|
* munmap the index file for the specified packfile (if it is
|
||||||
* currently mmapped).
|
* currently mmapped).
|
||||||
*/
|
*/
|
||||||
extern void close_pack_index(struct packed_git *);
|
void close_pack_index(struct packed_git *);
|
||||||
|
|
||||||
int close_pack_fd(struct packed_git *p);
|
int close_pack_fd(struct packed_git *p);
|
||||||
|
|
||||||
extern uint32_t get_pack_fanout(struct packed_git *p, uint32_t value);
|
uint32_t get_pack_fanout(struct packed_git *p, uint32_t value);
|
||||||
|
|
||||||
extern unsigned char *use_pack(struct packed_git *, struct pack_window **, off_t, unsigned long *);
|
unsigned char *use_pack(struct packed_git *, struct pack_window **, off_t, unsigned long *);
|
||||||
extern void close_pack_windows(struct packed_git *);
|
void close_pack_windows(struct packed_git *);
|
||||||
extern void close_pack(struct packed_git *);
|
void close_pack(struct packed_git *);
|
||||||
extern void close_all_packs(struct raw_object_store *o);
|
void close_all_packs(struct raw_object_store *o);
|
||||||
extern void unuse_pack(struct pack_window **);
|
void unuse_pack(struct pack_window **);
|
||||||
extern void clear_delta_base_cache(void);
|
void clear_delta_base_cache(void);
|
||||||
extern struct packed_git *add_packed_git(const char *path, size_t path_len, int local);
|
struct packed_git *add_packed_git(const char *path, size_t path_len, int local);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Make sure that a pointer access into an mmap'd index file is within bounds,
|
* Make sure that a pointer access into an mmap'd index file is within bounds,
|
||||||
@ -96,7 +96,7 @@ extern struct packed_git *add_packed_git(const char *path, size_t path_len, int
|
|||||||
* (like the 64-bit extended offset table), as we compare the size to the
|
* (like the 64-bit extended offset table), as we compare the size to the
|
||||||
* fixed-length parts when we open the file.
|
* fixed-length parts when we open the file.
|
||||||
*/
|
*/
|
||||||
extern void check_pack_index_ptr(const struct packed_git *p, const void *ptr);
|
void check_pack_index_ptr(const struct packed_git *p, const void *ptr);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Perform binary search on a pack-index for a given oid. Packfile is expected to
|
* Perform binary search on a pack-index for a given oid. Packfile is expected to
|
||||||
@ -112,59 +112,59 @@ int bsearch_pack(const struct object_id *oid, const struct packed_git *p, uint32
|
|||||||
* at the SHA-1 within the mmapped index. Return NULL if there is an
|
* at the SHA-1 within the mmapped index. Return NULL if there is an
|
||||||
* error.
|
* error.
|
||||||
*/
|
*/
|
||||||
extern const unsigned char *nth_packed_object_sha1(struct packed_git *, uint32_t n);
|
const unsigned char *nth_packed_object_sha1(struct packed_git *, uint32_t n);
|
||||||
/*
|
/*
|
||||||
* Like nth_packed_object_sha1, but write the data into the object specified by
|
* Like nth_packed_object_sha1, but write the data into the object specified by
|
||||||
* the the first argument. Returns the first argument on success, and NULL on
|
* the the first argument. Returns the first argument on success, and NULL on
|
||||||
* error.
|
* error.
|
||||||
*/
|
*/
|
||||||
extern const struct object_id *nth_packed_object_oid(struct object_id *, struct packed_git *, uint32_t n);
|
const struct object_id *nth_packed_object_oid(struct object_id *, struct packed_git *, uint32_t n);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Return the offset of the nth object within the specified packfile.
|
* Return the offset of the nth object within the specified packfile.
|
||||||
* The index must already be opened.
|
* The index must already be opened.
|
||||||
*/
|
*/
|
||||||
extern off_t nth_packed_object_offset(const struct packed_git *, uint32_t n);
|
off_t nth_packed_object_offset(const struct packed_git *, uint32_t n);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If the object named sha1 is present in the specified packfile,
|
* If the object named sha1 is present in the specified packfile,
|
||||||
* return its offset within the packfile; otherwise, return 0.
|
* return its offset within the packfile; otherwise, return 0.
|
||||||
*/
|
*/
|
||||||
extern off_t find_pack_entry_one(const unsigned char *sha1, struct packed_git *);
|
off_t find_pack_entry_one(const unsigned char *sha1, struct packed_git *);
|
||||||
|
|
||||||
extern int is_pack_valid(struct packed_git *);
|
int is_pack_valid(struct packed_git *);
|
||||||
extern void *unpack_entry(struct repository *r, struct packed_git *, off_t, enum object_type *, unsigned long *);
|
void *unpack_entry(struct repository *r, struct packed_git *, off_t, enum object_type *, unsigned long *);
|
||||||
extern unsigned long unpack_object_header_buffer(const unsigned char *buf, unsigned long len, enum object_type *type, unsigned long *sizep);
|
unsigned long unpack_object_header_buffer(const unsigned char *buf, unsigned long len, enum object_type *type, unsigned long *sizep);
|
||||||
extern unsigned long get_size_from_delta(struct packed_git *, struct pack_window **, off_t);
|
unsigned long get_size_from_delta(struct packed_git *, struct pack_window **, off_t);
|
||||||
extern int unpack_object_header(struct packed_git *, struct pack_window **, off_t *, unsigned long *);
|
int unpack_object_header(struct packed_git *, struct pack_window **, off_t *, unsigned long *);
|
||||||
|
|
||||||
extern void release_pack_memory(size_t);
|
void release_pack_memory(size_t);
|
||||||
|
|
||||||
/* global flag to enable extra checks when accessing packed objects */
|
/* global flag to enable extra checks when accessing packed objects */
|
||||||
extern int do_check_packed_object_crc;
|
extern int do_check_packed_object_crc;
|
||||||
|
|
||||||
extern int packed_object_info(struct repository *r,
|
int packed_object_info(struct repository *r,
|
||||||
struct packed_git *pack,
|
struct packed_git *pack,
|
||||||
off_t offset, struct object_info *);
|
off_t offset, struct object_info *);
|
||||||
|
|
||||||
extern void mark_bad_packed_object(struct packed_git *p, const unsigned char *sha1);
|
void mark_bad_packed_object(struct packed_git *p, const unsigned char *sha1);
|
||||||
extern const struct packed_git *has_packed_and_bad(struct repository *r, const unsigned char *sha1);
|
const struct packed_git *has_packed_and_bad(struct repository *r, const unsigned char *sha1);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Iff a pack file in the given repository contains the object named by sha1,
|
* Iff a pack file in the given repository contains the object named by sha1,
|
||||||
* return true and store its location to e.
|
* return true and store its location to e.
|
||||||
*/
|
*/
|
||||||
extern int find_pack_entry(struct repository *r, const struct object_id *oid, struct pack_entry *e);
|
int find_pack_entry(struct repository *r, const struct object_id *oid, struct pack_entry *e);
|
||||||
|
|
||||||
extern int has_object_pack(const struct object_id *oid);
|
int has_object_pack(const struct object_id *oid);
|
||||||
|
|
||||||
extern int has_pack_index(const unsigned char *sha1);
|
int has_pack_index(const unsigned char *sha1);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Return 1 if an object in a promisor packfile is or refers to the given
|
* Return 1 if an object in a promisor packfile is or refers to the given
|
||||||
* object, 0 otherwise.
|
* object, 0 otherwise.
|
||||||
*/
|
*/
|
||||||
extern int is_promisor_object(const struct object_id *oid);
|
int is_promisor_object(const struct object_id *oid);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Expose a function for fuzz testing.
|
* Expose a function for fuzz testing.
|
||||||
@ -176,7 +176,7 @@ extern int is_promisor_object(const struct object_id *oid);
|
|||||||
* have a convenient entry-point for fuzz testing. For real uses, you should
|
* have a convenient entry-point for fuzz testing. For real uses, you should
|
||||||
* probably use open_pack_index() or parse_pack_index() instead.
|
* probably use open_pack_index() or parse_pack_index() instead.
|
||||||
*/
|
*/
|
||||||
extern int load_idx(const char *path, const unsigned int hashsz, void *idx_map,
|
int load_idx(const char *path, const unsigned int hashsz, void *idx_map,
|
||||||
size_t idx_size, struct packed_git *p);
|
size_t idx_size, struct packed_git *p);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
2
path.h
2
path.h
@ -143,7 +143,7 @@ extern int strbuf_git_path_submodule(struct strbuf *sb, const char *path,
|
|||||||
const char *fmt, ...)
|
const char *fmt, ...)
|
||||||
__attribute__((format (printf, 3, 4)));
|
__attribute__((format (printf, 3, 4)));
|
||||||
|
|
||||||
extern void report_linked_checkout_garbage(void);
|
void report_linked_checkout_garbage(void);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* You can define a static memoized git path like:
|
* You can define a static memoized git path like:
|
||||||
|
@ -172,7 +172,7 @@ struct packet_reader {
|
|||||||
* Initialize a 'struct packet_reader' object which is an
|
* Initialize a 'struct packet_reader' object which is an
|
||||||
* abstraction around the 'packet_read_with_status()' function.
|
* abstraction around the 'packet_read_with_status()' function.
|
||||||
*/
|
*/
|
||||||
extern void packet_reader_init(struct packet_reader *reader, int fd,
|
void packet_reader_init(struct packet_reader *reader, int fd,
|
||||||
char *src_buffer, size_t src_len,
|
char *src_buffer, size_t src_len,
|
||||||
int options);
|
int options);
|
||||||
|
|
||||||
@ -186,7 +186,7 @@ extern void packet_reader_init(struct packet_reader *reader, int fd,
|
|||||||
* 'line' is set to point at the read line
|
* 'line' is set to point at the read line
|
||||||
* PACKET_READ_FLUSH: 'pktlen' is set to '0' and 'line' is set to NULL
|
* PACKET_READ_FLUSH: 'pktlen' is set to '0' and 'line' is set to NULL
|
||||||
*/
|
*/
|
||||||
extern enum packet_read_status packet_reader_read(struct packet_reader *reader);
|
enum packet_read_status packet_reader_read(struct packet_reader *reader);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Peek the next packet line without consuming it and return the status.
|
* Peek the next packet line without consuming it and return the status.
|
||||||
@ -196,7 +196,7 @@ extern enum packet_read_status packet_reader_read(struct packet_reader *reader);
|
|||||||
* Peeking multiple times without calling 'packet_reader_read()' will return
|
* Peeking multiple times without calling 'packet_reader_read()' will return
|
||||||
* the same result.
|
* the same result.
|
||||||
*/
|
*/
|
||||||
extern enum packet_read_status packet_reader_peek(struct packet_reader *reader);
|
enum packet_read_status packet_reader_peek(struct packet_reader *reader);
|
||||||
|
|
||||||
#define DEFAULT_PACKET_MAX 1000
|
#define DEFAULT_PACKET_MAX 1000
|
||||||
#define LARGE_PACKET_MAX 65520
|
#define LARGE_PACKET_MAX 65520
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "sha1.h"
|
#include "sha1.h"
|
||||||
|
|
||||||
extern void ppc_sha1_core(uint32_t *hash, const unsigned char *p,
|
void ppc_sha1_core(uint32_t *hash, const unsigned char *p,
|
||||||
unsigned int nblocks);
|
unsigned int nblocks);
|
||||||
|
|
||||||
int ppc_SHA1_Init(ppc_SHA_CTX *c)
|
int ppc_SHA1_Init(ppc_SHA_CTX *c)
|
||||||
|
10
prio-queue.h
10
prio-queue.h
@ -37,24 +37,24 @@ struct prio_queue {
|
|||||||
/*
|
/*
|
||||||
* Add the "thing" to the queue.
|
* Add the "thing" to the queue.
|
||||||
*/
|
*/
|
||||||
extern void prio_queue_put(struct prio_queue *, void *thing);
|
void prio_queue_put(struct prio_queue *, void *thing);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Extract the "thing" that compares the smallest out of the queue,
|
* Extract the "thing" that compares the smallest out of the queue,
|
||||||
* or NULL. If compare function is NULL, the queue acts as a LIFO
|
* or NULL. If compare function is NULL, the queue acts as a LIFO
|
||||||
* stack.
|
* stack.
|
||||||
*/
|
*/
|
||||||
extern void *prio_queue_get(struct prio_queue *);
|
void *prio_queue_get(struct prio_queue *);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Gain access to the "thing" that would be returned by
|
* Gain access to the "thing" that would be returned by
|
||||||
* prio_queue_get, but do not remove it from the queue.
|
* prio_queue_get, but do not remove it from the queue.
|
||||||
*/
|
*/
|
||||||
extern void *prio_queue_peek(struct prio_queue *);
|
void *prio_queue_peek(struct prio_queue *);
|
||||||
|
|
||||||
extern void clear_prio_queue(struct prio_queue *);
|
void clear_prio_queue(struct prio_queue *);
|
||||||
|
|
||||||
/* Reverse the LIFO elements */
|
/* Reverse the LIFO elements */
|
||||||
extern void prio_queue_reverse(struct prio_queue *);
|
void prio_queue_reverse(struct prio_queue *);
|
||||||
|
|
||||||
#endif /* PRIO_QUEUE_H */
|
#endif /* PRIO_QUEUE_H */
|
||||||
|
@ -14,7 +14,7 @@ enum protocol_version {
|
|||||||
* 'protocol.version' config. If unconfigured, a value of 'protocol_v0' is
|
* 'protocol.version' config. If unconfigured, a value of 'protocol_v0' is
|
||||||
* returned.
|
* returned.
|
||||||
*/
|
*/
|
||||||
extern enum protocol_version get_protocol_version_config(void);
|
enum protocol_version get_protocol_version_config(void);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Used by a server to determine which protocol version should be used based on
|
* Used by a server to determine which protocol version should be used based on
|
||||||
@ -23,12 +23,12 @@ extern enum protocol_version get_protocol_version_config(void);
|
|||||||
* request a particular protocol version, a default of 'protocol_v0' will be
|
* request a particular protocol version, a default of 'protocol_v0' will be
|
||||||
* used.
|
* used.
|
||||||
*/
|
*/
|
||||||
extern enum protocol_version determine_protocol_version_server(void);
|
enum protocol_version determine_protocol_version_server(void);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Used by a client to determine which protocol version the server is speaking
|
* Used by a client to determine which protocol version the server is speaking
|
||||||
* based on the server's initial response.
|
* based on the server's initial response.
|
||||||
*/
|
*/
|
||||||
extern enum protocol_version determine_protocol_version_client(const char *server_response);
|
enum protocol_version determine_protocol_version_client(const char *server_response);
|
||||||
|
|
||||||
#endif /* PROTOCOL_H */
|
#endif /* PROTOCOL_H */
|
||||||
|
30
quote.h
30
quote.h
@ -29,8 +29,8 @@ struct strbuf;
|
|||||||
* sq_quotef() quotes the entire formatted string as a single result.
|
* sq_quotef() quotes the entire formatted string as a single result.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
extern void sq_quote_buf(struct strbuf *, const char *src);
|
void sq_quote_buf(struct strbuf *, const char *src);
|
||||||
extern void sq_quote_argv(struct strbuf *, const char **argv);
|
void sq_quote_argv(struct strbuf *, const char **argv);
|
||||||
extern void sq_quotef(struct strbuf *, const char *fmt, ...);
|
extern void sq_quotef(struct strbuf *, const char *fmt, ...);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -45,14 +45,14 @@ void sq_quote_argv_pretty(struct strbuf *, const char **argv);
|
|||||||
* NULL if the input does not look like what sq_quote would have
|
* NULL if the input does not look like what sq_quote would have
|
||||||
* produced.
|
* produced.
|
||||||
*/
|
*/
|
||||||
extern char *sq_dequote(char *);
|
char *sq_dequote(char *);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Same as the above, but can be used to unwrap many arguments in the
|
* Same as the above, but can be used to unwrap many arguments in the
|
||||||
* same string separated by space. Like sq_quote, it works in place,
|
* same string separated by space. Like sq_quote, it works in place,
|
||||||
* modifying arg and appending pointers into it to argv.
|
* modifying arg and appending pointers into it to argv.
|
||||||
*/
|
*/
|
||||||
extern int sq_dequote_to_argv(char *arg, const char ***argv, int *nr, int *alloc);
|
int sq_dequote_to_argv(char *arg, const char ***argv, int *nr, int *alloc);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Same as above, but store the unquoted strings in an argv_array. We will
|
* Same as above, but store the unquoted strings in an argv_array. We will
|
||||||
@ -60,24 +60,24 @@ extern int sq_dequote_to_argv(char *arg, const char ***argv, int *nr, int *alloc
|
|||||||
* will duplicate and take ownership of the strings.
|
* will duplicate and take ownership of the strings.
|
||||||
*/
|
*/
|
||||||
struct argv_array;
|
struct argv_array;
|
||||||
extern int sq_dequote_to_argv_array(char *arg, struct argv_array *);
|
int sq_dequote_to_argv_array(char *arg, struct argv_array *);
|
||||||
|
|
||||||
extern int unquote_c_style(struct strbuf *, const char *quoted, const char **endp);
|
int unquote_c_style(struct strbuf *, const char *quoted, const char **endp);
|
||||||
extern size_t quote_c_style(const char *name, struct strbuf *, FILE *, int no_dq);
|
size_t quote_c_style(const char *name, struct strbuf *, FILE *, int no_dq);
|
||||||
extern void quote_two_c_style(struct strbuf *, const char *, const char *, int);
|
void quote_two_c_style(struct strbuf *, const char *, const char *, int);
|
||||||
|
|
||||||
extern void write_name_quoted(const char *name, FILE *, int terminator);
|
void write_name_quoted(const char *name, FILE *, int terminator);
|
||||||
extern void write_name_quoted_relative(const char *name, const char *prefix,
|
void write_name_quoted_relative(const char *name, const char *prefix,
|
||||||
FILE *fp, int terminator);
|
FILE *fp, int terminator);
|
||||||
|
|
||||||
/* quote path as relative to the given prefix */
|
/* quote path as relative to the given prefix */
|
||||||
extern char *quote_path_relative(const char *in, const char *prefix,
|
char *quote_path_relative(const char *in, const char *prefix,
|
||||||
struct strbuf *out);
|
struct strbuf *out);
|
||||||
|
|
||||||
/* quoting as a string literal for other languages */
|
/* quoting as a string literal for other languages */
|
||||||
extern void perl_quote_buf(struct strbuf *sb, const char *src);
|
void perl_quote_buf(struct strbuf *sb, const char *src);
|
||||||
extern void python_quote_buf(struct strbuf *sb, const char *src);
|
void python_quote_buf(struct strbuf *sb, const char *src);
|
||||||
extern void tcl_quote_buf(struct strbuf *sb, const char *src);
|
void tcl_quote_buf(struct strbuf *sb, const char *src);
|
||||||
extern void basic_regex_quote_buf(struct strbuf *sb, const char *src);
|
void basic_regex_quote_buf(struct strbuf *sb, const char *src);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -4,9 +4,9 @@
|
|||||||
struct progress;
|
struct progress;
|
||||||
struct rev_info;
|
struct rev_info;
|
||||||
|
|
||||||
extern int add_unseen_recent_objects_to_traversal(struct rev_info *revs,
|
int add_unseen_recent_objects_to_traversal(struct rev_info *revs,
|
||||||
timestamp_t timestamp);
|
timestamp_t timestamp);
|
||||||
extern void mark_reachable_objects(struct rev_info *revs, int mark_reflog,
|
void mark_reachable_objects(struct rev_info *revs, int mark_reflog,
|
||||||
timestamp_t mark_recent, struct progress *);
|
timestamp_t mark_recent, struct progress *);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -6,21 +6,21 @@
|
|||||||
struct commit;
|
struct commit;
|
||||||
struct reflog_walk_info;
|
struct reflog_walk_info;
|
||||||
|
|
||||||
extern void init_reflog_walk(struct reflog_walk_info **info);
|
void init_reflog_walk(struct reflog_walk_info **info);
|
||||||
extern int add_reflog_for_walk(struct reflog_walk_info *info,
|
int add_reflog_for_walk(struct reflog_walk_info *info,
|
||||||
struct commit *commit, const char *name);
|
struct commit *commit, const char *name);
|
||||||
extern void show_reflog_message(struct reflog_walk_info *info, int,
|
void show_reflog_message(struct reflog_walk_info *info, int,
|
||||||
const struct date_mode *, int force_date);
|
const struct date_mode *, int force_date);
|
||||||
extern void get_reflog_message(struct strbuf *sb,
|
void get_reflog_message(struct strbuf *sb,
|
||||||
struct reflog_walk_info *reflog_info);
|
struct reflog_walk_info *reflog_info);
|
||||||
extern const char *get_reflog_ident(struct reflog_walk_info *reflog_info);
|
const char *get_reflog_ident(struct reflog_walk_info *reflog_info);
|
||||||
extern timestamp_t get_reflog_timestamp(struct reflog_walk_info *reflog_info);
|
timestamp_t get_reflog_timestamp(struct reflog_walk_info *reflog_info);
|
||||||
extern void get_reflog_selector(struct strbuf *sb,
|
void get_reflog_selector(struct strbuf *sb,
|
||||||
struct reflog_walk_info *reflog_info,
|
struct reflog_walk_info *reflog_info,
|
||||||
const struct date_mode *dmode, int force_date,
|
const struct date_mode *dmode, int force_date,
|
||||||
int shorten);
|
int shorten);
|
||||||
|
|
||||||
extern int reflog_walk_empty(struct reflog_walk_info *walk);
|
int reflog_walk_empty(struct reflog_walk_info *walk);
|
||||||
|
|
||||||
struct commit *next_reflog_entry(struct reflog_walk_info *reflog_info);
|
struct commit *next_reflog_entry(struct reflog_walk_info *reflog_info);
|
||||||
|
|
||||||
|
2
refs.h
2
refs.h
@ -111,7 +111,7 @@ int should_autocreate_reflog(const char *refname);
|
|||||||
|
|
||||||
int is_branch(const char *refname);
|
int is_branch(const char *refname);
|
||||||
|
|
||||||
extern int refs_init_db(struct strbuf *err);
|
int refs_init_db(struct strbuf *err);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If refname is a non-symbolic reference that refers to a tag object,
|
* If refname is a non-symbolic reference that refers to a tag object,
|
||||||
|
12
remote.h
12
remote.h
@ -119,13 +119,13 @@ struct ref {
|
|||||||
#define REF_HEADS (1u << 1)
|
#define REF_HEADS (1u << 1)
|
||||||
#define REF_TAGS (1u << 2)
|
#define REF_TAGS (1u << 2)
|
||||||
|
|
||||||
extern struct ref *find_ref_by_name(const struct ref *list, const char *name);
|
struct ref *find_ref_by_name(const struct ref *list, const char *name);
|
||||||
|
|
||||||
struct ref *alloc_ref(const char *name);
|
struct ref *alloc_ref(const char *name);
|
||||||
struct ref *copy_ref(const struct ref *ref);
|
struct ref *copy_ref(const struct ref *ref);
|
||||||
struct ref *copy_ref_list(const struct ref *ref);
|
struct ref *copy_ref_list(const struct ref *ref);
|
||||||
void sort_ref_list(struct ref **, int (*cmp)(const void *, const void *));
|
void sort_ref_list(struct ref **, int (*cmp)(const void *, const void *));
|
||||||
extern int count_refspec_match(const char *, struct ref *refs, struct ref **matched_ref);
|
int count_refspec_match(const char *, struct ref *refs, struct ref **matched_ref);
|
||||||
int ref_compare_name(const void *, const void *);
|
int ref_compare_name(const void *, const void *);
|
||||||
|
|
||||||
int check_ref_type(const struct ref *ref, int flags);
|
int check_ref_type(const struct ref *ref, int flags);
|
||||||
@ -139,13 +139,13 @@ struct oid_array;
|
|||||||
struct packet_reader;
|
struct packet_reader;
|
||||||
struct argv_array;
|
struct argv_array;
|
||||||
struct string_list;
|
struct string_list;
|
||||||
extern struct ref **get_remote_heads(struct packet_reader *reader,
|
struct ref **get_remote_heads(struct packet_reader *reader,
|
||||||
struct ref **list, unsigned int flags,
|
struct ref **list, unsigned int flags,
|
||||||
struct oid_array *extra_have,
|
struct oid_array *extra_have,
|
||||||
struct oid_array *shallow_points);
|
struct oid_array *shallow_points);
|
||||||
|
|
||||||
/* Used for protocol v2 in order to retrieve refs from a remote */
|
/* Used for protocol v2 in order to retrieve refs from a remote */
|
||||||
extern struct ref **get_remote_refs(int fd_out, struct packet_reader *reader,
|
struct ref **get_remote_refs(int fd_out, struct packet_reader *reader,
|
||||||
struct ref **list, int for_push,
|
struct ref **list, int for_push,
|
||||||
const struct argv_array *ref_prefixes,
|
const struct argv_array *ref_prefixes,
|
||||||
const struct string_list *server_options);
|
const struct string_list *server_options);
|
||||||
@ -287,9 +287,9 @@ struct push_cas_option {
|
|||||||
int alloc;
|
int alloc;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern int parseopt_push_cas_option(const struct option *, const char *arg, int unset);
|
int parseopt_push_cas_option(const struct option *, const char *arg, int unset);
|
||||||
|
|
||||||
extern int is_empty_cas(const struct push_cas_option *);
|
int is_empty_cas(const struct push_cas_option *);
|
||||||
void apply_push_cas(struct push_cas_option *, struct remote *, struct ref *);
|
void apply_push_cas(struct push_cas_option *, struct remote *, struct ref *);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -16,7 +16,7 @@ void prepare_replace_object(struct repository *r);
|
|||||||
* This internal function is only declared here for the benefit of
|
* This internal function is only declared here for the benefit of
|
||||||
* lookup_replace_object(). Please do not call it directly.
|
* lookup_replace_object(). Please do not call it directly.
|
||||||
*/
|
*/
|
||||||
extern const struct object_id *do_lookup_replace_object(struct repository *r,
|
const struct object_id *do_lookup_replace_object(struct repository *r,
|
||||||
const struct object_id *oid);
|
const struct object_id *oid);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -8,12 +8,12 @@ struct resolve_undo_info {
|
|||||||
struct object_id oid[3];
|
struct object_id oid[3];
|
||||||
};
|
};
|
||||||
|
|
||||||
extern void record_resolve_undo(struct index_state *, struct cache_entry *);
|
void record_resolve_undo(struct index_state *, struct cache_entry *);
|
||||||
extern void resolve_undo_write(struct strbuf *, struct string_list *);
|
void resolve_undo_write(struct strbuf *, struct string_list *);
|
||||||
extern struct string_list *resolve_undo_read(const char *, unsigned long);
|
struct string_list *resolve_undo_read(const char *, unsigned long);
|
||||||
extern void resolve_undo_clear_index(struct index_state *);
|
void resolve_undo_clear_index(struct index_state *);
|
||||||
extern int unmerge_index_entry_at(struct index_state *, int);
|
int unmerge_index_entry_at(struct index_state *, int);
|
||||||
extern void unmerge_index(struct index_state *, const struct pathspec *);
|
void unmerge_index(struct index_state *, const struct pathspec *);
|
||||||
extern void unmerge_marked_index(struct index_state *);
|
void unmerge_marked_index(struct index_state *);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -55,7 +55,7 @@ struct child_process {
|
|||||||
#define CHILD_PROCESS_INIT { NULL, ARGV_ARRAY_INIT, ARGV_ARRAY_INIT }
|
#define CHILD_PROCESS_INIT { NULL, ARGV_ARRAY_INIT, ARGV_ARRAY_INIT }
|
||||||
void child_process_init(struct child_process *);
|
void child_process_init(struct child_process *);
|
||||||
void child_process_clear(struct child_process *);
|
void child_process_clear(struct child_process *);
|
||||||
extern int is_executable(const char *name);
|
int is_executable(const char *name);
|
||||||
|
|
||||||
int start_command(struct child_process *);
|
int start_command(struct child_process *);
|
||||||
int finish_command(struct child_process *);
|
int finish_command(struct child_process *);
|
||||||
@ -67,10 +67,10 @@ int run_command(struct child_process *);
|
|||||||
* or disabled. Note that this points to static storage that will be
|
* or disabled. Note that this points to static storage that will be
|
||||||
* overwritten by further calls to find_hook and run_hook_*.
|
* overwritten by further calls to find_hook and run_hook_*.
|
||||||
*/
|
*/
|
||||||
extern const char *find_hook(const char *name);
|
const char *find_hook(const char *name);
|
||||||
LAST_ARG_MUST_BE_NULL
|
LAST_ARG_MUST_BE_NULL
|
||||||
extern int run_hook_le(const char *const *env, const char *name, ...);
|
extern int run_hook_le(const char *const *env, const char *name, ...);
|
||||||
extern int run_hook_ve(const char *const *env, const char *name, va_list args);
|
int run_hook_ve(const char *const *env, const char *name, va_list args);
|
||||||
|
|
||||||
#define RUN_COMMAND_NO_STDIN 1
|
#define RUN_COMMAND_NO_STDIN 1
|
||||||
#define RUN_GIT_CMD 2 /*If this is to be git sub-command */
|
#define RUN_GIT_CMD 2 /*If this is to be git sub-command */
|
||||||
|
4
serve.h
4
serve.h
@ -2,7 +2,7 @@
|
|||||||
#define SERVE_H
|
#define SERVE_H
|
||||||
|
|
||||||
struct argv_array;
|
struct argv_array;
|
||||||
extern int has_capability(const struct argv_array *keys, const char *capability,
|
int has_capability(const struct argv_array *keys, const char *capability,
|
||||||
const char **value);
|
const char **value);
|
||||||
|
|
||||||
struct serve_options {
|
struct serve_options {
|
||||||
@ -10,6 +10,6 @@ struct serve_options {
|
|||||||
unsigned stateless_rpc;
|
unsigned stateless_rpc;
|
||||||
};
|
};
|
||||||
#define SERVE_OPTIONS_INIT { 0 }
|
#define SERVE_OPTIONS_INIT { 0 }
|
||||||
extern void serve(struct serve_options *options);
|
void serve(struct serve_options *options);
|
||||||
|
|
||||||
#endif /* SERVE_H */
|
#endif /* SERVE_H */
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
typedef const unsigned char *sha1_access_fn(size_t index, void *table);
|
typedef const unsigned char *sha1_access_fn(size_t index, void *table);
|
||||||
|
|
||||||
extern int sha1_pos(const unsigned char *sha1,
|
int sha1_pos(const unsigned char *sha1,
|
||||||
void *table,
|
void *table,
|
||||||
size_t nr,
|
size_t nr,
|
||||||
sha1_access_fn fn);
|
sha1_access_fn fn);
|
||||||
|
@ -8,10 +8,10 @@
|
|||||||
/* opaque */
|
/* opaque */
|
||||||
struct git_istream;
|
struct git_istream;
|
||||||
|
|
||||||
extern struct git_istream *open_istream(const struct object_id *, enum object_type *, unsigned long *, struct stream_filter *);
|
struct git_istream *open_istream(const struct object_id *, enum object_type *, unsigned long *, struct stream_filter *);
|
||||||
extern int close_istream(struct git_istream *);
|
int close_istream(struct git_istream *);
|
||||||
extern ssize_t read_istream(struct git_istream *, void *, size_t);
|
ssize_t read_istream(struct git_istream *, void *, size_t);
|
||||||
|
|
||||||
extern int stream_blob_to_fd(int fd, const struct object_id *, struct stream_filter *, int can_seek);
|
int stream_blob_to_fd(int fd, const struct object_id *, struct stream_filter *, int can_seek);
|
||||||
|
|
||||||
#endif /* STREAMING_H */
|
#endif /* STREAMING_H */
|
||||||
|
@ -174,7 +174,7 @@ struct string_list_item *string_list_insert(struct string_list *list, const char
|
|||||||
* Remove the given string from the sorted list. If the string
|
* Remove the given string from the sorted list. If the string
|
||||||
* doesn't exist, the list is not altered.
|
* doesn't exist, the list is not altered.
|
||||||
*/
|
*/
|
||||||
extern void string_list_remove(struct string_list *list, const char *string,
|
void string_list_remove(struct string_list *list, const char *string,
|
||||||
int free_util);
|
int free_util);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -42,7 +42,7 @@ struct subprocess_capability {
|
|||||||
/* subprocess functions */
|
/* subprocess functions */
|
||||||
|
|
||||||
/* Function to test two subprocess hashmap entries for equality. */
|
/* Function to test two subprocess hashmap entries for equality. */
|
||||||
extern int cmd2process_cmp(const void *unused_cmp_data,
|
int cmd2process_cmp(const void *unused_cmp_data,
|
||||||
const void *e1,
|
const void *e1,
|
||||||
const void *e2,
|
const void *e2,
|
||||||
const void *unused_keydata);
|
const void *unused_keydata);
|
||||||
|
@ -30,17 +30,17 @@ struct submodule {
|
|||||||
struct submodule_cache;
|
struct submodule_cache;
|
||||||
struct repository;
|
struct repository;
|
||||||
|
|
||||||
extern void submodule_cache_free(struct submodule_cache *cache);
|
void submodule_cache_free(struct submodule_cache *cache);
|
||||||
|
|
||||||
extern int parse_submodule_fetchjobs(const char *var, const char *value);
|
int parse_submodule_fetchjobs(const char *var, const char *value);
|
||||||
extern int parse_fetch_recurse_submodules_arg(const char *opt, const char *arg);
|
int parse_fetch_recurse_submodules_arg(const char *opt, const char *arg);
|
||||||
struct option;
|
struct option;
|
||||||
extern int option_fetch_parse_recurse_submodules(const struct option *opt,
|
int option_fetch_parse_recurse_submodules(const struct option *opt,
|
||||||
const char *arg, int unset);
|
const char *arg, int unset);
|
||||||
extern int parse_update_recurse_submodules_arg(const char *opt, const char *arg);
|
int parse_update_recurse_submodules_arg(const char *opt, const char *arg);
|
||||||
extern int parse_push_recurse_submodules_arg(const char *opt, const char *arg);
|
int parse_push_recurse_submodules_arg(const char *opt, const char *arg);
|
||||||
extern void repo_read_gitmodules(struct repository *repo);
|
void repo_read_gitmodules(struct repository *repo);
|
||||||
extern void gitmodules_config_oid(const struct object_id *commit_oid);
|
void gitmodules_config_oid(const struct object_id *commit_oid);
|
||||||
const struct submodule *submodule_from_name(struct repository *r,
|
const struct submodule *submodule_from_name(struct repository *r,
|
||||||
const struct object_id *commit_or_tree,
|
const struct object_id *commit_or_tree,
|
||||||
const char *name);
|
const char *name);
|
||||||
@ -66,7 +66,7 @@ int check_submodule_name(const char *name);
|
|||||||
* New helpers to retrieve arbitrary configuration from the '.gitmodules' file
|
* New helpers to retrieve arbitrary configuration from the '.gitmodules' file
|
||||||
* should NOT be added.
|
* should NOT be added.
|
||||||
*/
|
*/
|
||||||
extern void fetch_config_from_gitmodules(int *max_children, int *recurse_submodules);
|
void fetch_config_from_gitmodules(int *max_children, int *recurse_submodules);
|
||||||
extern void update_clone_config_from_gitmodules(int *max_jobs);
|
void update_clone_config_from_gitmodules(int *max_jobs);
|
||||||
|
|
||||||
#endif /* SUBMODULE_CONFIG_H */
|
#endif /* SUBMODULE_CONFIG_H */
|
||||||
|
14
tag.h
14
tag.h
@ -11,13 +11,13 @@ struct tag {
|
|||||||
char *tag;
|
char *tag;
|
||||||
timestamp_t date;
|
timestamp_t date;
|
||||||
};
|
};
|
||||||
extern struct tag *lookup_tag(struct repository *r, const struct object_id *oid);
|
struct tag *lookup_tag(struct repository *r, const struct object_id *oid);
|
||||||
extern int parse_tag_buffer(struct repository *r, struct tag *item, const void *data, unsigned long size);
|
int parse_tag_buffer(struct repository *r, struct tag *item, const void *data, unsigned long size);
|
||||||
extern int parse_tag(struct tag *item);
|
int parse_tag(struct tag *item);
|
||||||
extern void release_tag_memory(struct tag *t);
|
void release_tag_memory(struct tag *t);
|
||||||
extern struct object *deref_tag(struct repository *r, struct object *, const char *, int);
|
struct object *deref_tag(struct repository *r, struct object *, const char *, int);
|
||||||
extern struct object *deref_tag_noverify(struct object *);
|
struct object *deref_tag_noverify(struct object *);
|
||||||
extern int gpg_verify_tag(const struct object_id *oid,
|
int gpg_verify_tag(const struct object_id *oid,
|
||||||
const char *name_to_report, unsigned flags);
|
const char *name_to_report, unsigned flags);
|
||||||
|
|
||||||
#endif /* TAG_H */
|
#endif /* TAG_H */
|
||||||
|
26
tempfile.h
26
tempfile.h
@ -89,7 +89,7 @@ struct tempfile {
|
|||||||
* a tempfile (whose "fd" member can be used for writing to it), or
|
* a tempfile (whose "fd" member can be used for writing to it), or
|
||||||
* NULL on error. It is an error if a file already exists at that path.
|
* NULL on error. It is an error if a file already exists at that path.
|
||||||
*/
|
*/
|
||||||
extern struct tempfile *create_tempfile(const char *path);
|
struct tempfile *create_tempfile(const char *path);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Register an existing file as a tempfile, meaning that it will be
|
* Register an existing file as a tempfile, meaning that it will be
|
||||||
@ -97,7 +97,7 @@ extern struct tempfile *create_tempfile(const char *path);
|
|||||||
* but it can be worked with like any other closed tempfile (for
|
* but it can be worked with like any other closed tempfile (for
|
||||||
* example, it can be opened using reopen_tempfile()).
|
* example, it can be opened using reopen_tempfile()).
|
||||||
*/
|
*/
|
||||||
extern struct tempfile *register_tempfile(const char *path);
|
struct tempfile *register_tempfile(const char *path);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -136,7 +136,7 @@ extern struct tempfile *register_tempfile(const char *path);
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* See "mks_tempfile functions" above. */
|
/* See "mks_tempfile functions" above. */
|
||||||
extern struct tempfile *mks_tempfile_sm(const char *filename_template,
|
struct tempfile *mks_tempfile_sm(const char *filename_template,
|
||||||
int suffixlen, int mode);
|
int suffixlen, int mode);
|
||||||
|
|
||||||
/* See "mks_tempfile functions" above. */
|
/* See "mks_tempfile functions" above. */
|
||||||
@ -159,7 +159,7 @@ static inline struct tempfile *mks_tempfile(const char *filename_template)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* See "mks_tempfile functions" above. */
|
/* See "mks_tempfile functions" above. */
|
||||||
extern struct tempfile *mks_tempfile_tsm(const char *filename_template,
|
struct tempfile *mks_tempfile_tsm(const char *filename_template,
|
||||||
int suffixlen, int mode);
|
int suffixlen, int mode);
|
||||||
|
|
||||||
/* See "mks_tempfile functions" above. */
|
/* See "mks_tempfile functions" above. */
|
||||||
@ -182,7 +182,7 @@ static inline struct tempfile *mks_tempfile_t(const char *filename_template)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* See "mks_tempfile functions" above. */
|
/* See "mks_tempfile functions" above. */
|
||||||
extern struct tempfile *xmks_tempfile_m(const char *filename_template, int mode);
|
struct tempfile *xmks_tempfile_m(const char *filename_template, int mode);
|
||||||
|
|
||||||
/* See "mks_tempfile functions" above. */
|
/* See "mks_tempfile functions" above. */
|
||||||
static inline struct tempfile *xmks_tempfile(const char *filename_template)
|
static inline struct tempfile *xmks_tempfile(const char *filename_template)
|
||||||
@ -196,7 +196,7 @@ static inline struct tempfile *xmks_tempfile(const char *filename_template)
|
|||||||
* stream is closed automatically when `close_tempfile_gently()` is called or
|
* stream is closed automatically when `close_tempfile_gently()` is called or
|
||||||
* when the file is deleted or renamed.
|
* when the file is deleted or renamed.
|
||||||
*/
|
*/
|
||||||
extern FILE *fdopen_tempfile(struct tempfile *tempfile, const char *mode);
|
FILE *fdopen_tempfile(struct tempfile *tempfile, const char *mode);
|
||||||
|
|
||||||
static inline int is_tempfile_active(struct tempfile *tempfile)
|
static inline int is_tempfile_active(struct tempfile *tempfile)
|
||||||
{
|
{
|
||||||
@ -207,10 +207,10 @@ static inline int is_tempfile_active(struct tempfile *tempfile)
|
|||||||
* Return the path of the lockfile. The return value is a pointer to a
|
* Return the path of the lockfile. The return value is a pointer to a
|
||||||
* field within the lock_file object and should not be freed.
|
* field within the lock_file object and should not be freed.
|
||||||
*/
|
*/
|
||||||
extern const char *get_tempfile_path(struct tempfile *tempfile);
|
const char *get_tempfile_path(struct tempfile *tempfile);
|
||||||
|
|
||||||
extern int get_tempfile_fd(struct tempfile *tempfile);
|
int get_tempfile_fd(struct tempfile *tempfile);
|
||||||
extern FILE *get_tempfile_fp(struct tempfile *tempfile);
|
FILE *get_tempfile_fp(struct tempfile *tempfile);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If the temporary file is still open, close it (and the file pointer
|
* If the temporary file is still open, close it (and the file pointer
|
||||||
@ -220,7 +220,7 @@ extern FILE *get_tempfile_fp(struct tempfile *tempfile);
|
|||||||
* should eventually be called regardless of whether `close_tempfile_gently()`
|
* should eventually be called regardless of whether `close_tempfile_gently()`
|
||||||
* succeeds.
|
* succeeds.
|
||||||
*/
|
*/
|
||||||
extern int close_tempfile_gently(struct tempfile *tempfile);
|
int close_tempfile_gently(struct tempfile *tempfile);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Re-open a temporary file that has been closed using
|
* Re-open a temporary file that has been closed using
|
||||||
@ -241,7 +241,7 @@ extern int close_tempfile_gently(struct tempfile *tempfile);
|
|||||||
*
|
*
|
||||||
* * `rename_tempfile()` to move the file to its permanent location.
|
* * `rename_tempfile()` to move the file to its permanent location.
|
||||||
*/
|
*/
|
||||||
extern int reopen_tempfile(struct tempfile *tempfile);
|
int reopen_tempfile(struct tempfile *tempfile);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Close the file descriptor and/or file pointer and remove the
|
* Close the file descriptor and/or file pointer and remove the
|
||||||
@ -249,7 +249,7 @@ extern int reopen_tempfile(struct tempfile *tempfile);
|
|||||||
* `delete_tempfile()` for a `tempfile` object that has already been
|
* `delete_tempfile()` for a `tempfile` object that has already been
|
||||||
* deleted or renamed.
|
* deleted or renamed.
|
||||||
*/
|
*/
|
||||||
extern void delete_tempfile(struct tempfile **tempfile_p);
|
void delete_tempfile(struct tempfile **tempfile_p);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Close the file descriptor and/or file pointer if they are still
|
* Close the file descriptor and/or file pointer if they are still
|
||||||
@ -260,6 +260,6 @@ extern void delete_tempfile(struct tempfile **tempfile_p);
|
|||||||
* `rename(2)`. It is a bug to call `rename_tempfile()` for a
|
* `rename(2)`. It is a bug to call `rename_tempfile()` for a
|
||||||
* `tempfile` object that is not currently active.
|
* `tempfile` object that is not currently active.
|
||||||
*/
|
*/
|
||||||
extern int rename_tempfile(struct tempfile **tempfile_p, const char *path);
|
int rename_tempfile(struct tempfile **tempfile_p, const char *path);
|
||||||
|
|
||||||
#endif /* TEMPFILE_H */
|
#endif /* TEMPFILE_H */
|
||||||
|
16
trace.h
16
trace.h
@ -17,12 +17,12 @@ extern struct trace_key trace_default_key;
|
|||||||
extern struct trace_key trace_perf_key;
|
extern struct trace_key trace_perf_key;
|
||||||
extern struct trace_key trace_setup_key;
|
extern struct trace_key trace_setup_key;
|
||||||
|
|
||||||
extern void trace_repo_setup(const char *prefix);
|
void trace_repo_setup(const char *prefix);
|
||||||
extern int trace_want(struct trace_key *key);
|
int trace_want(struct trace_key *key);
|
||||||
extern void trace_disable(struct trace_key *key);
|
void trace_disable(struct trace_key *key);
|
||||||
extern uint64_t getnanotime(void);
|
uint64_t getnanotime(void);
|
||||||
extern void trace_command_performance(const char **argv);
|
void trace_command_performance(const char **argv);
|
||||||
extern void trace_verbatim(struct trace_key *key, const void *buf, unsigned len);
|
void trace_verbatim(struct trace_key *key, const void *buf, unsigned len);
|
||||||
uint64_t trace_performance_enter(void);
|
uint64_t trace_performance_enter(void);
|
||||||
|
|
||||||
#ifndef HAVE_VARIADIC_MACROS
|
#ifndef HAVE_VARIADIC_MACROS
|
||||||
@ -36,7 +36,7 @@ extern void trace_printf_key(struct trace_key *key, const char *format, ...);
|
|||||||
__attribute__((format (printf, 2, 3)))
|
__attribute__((format (printf, 2, 3)))
|
||||||
extern void trace_argv_printf(const char **argv, const char *format, ...);
|
extern void trace_argv_printf(const char **argv, const char *format, ...);
|
||||||
|
|
||||||
extern void trace_strbuf(struct trace_key *key, const struct strbuf *data);
|
void trace_strbuf(struct trace_key *key, const struct strbuf *data);
|
||||||
|
|
||||||
/* Prints elapsed time (in nanoseconds) if GIT_TRACE_PERFORMANCE is enabled. */
|
/* Prints elapsed time (in nanoseconds) if GIT_TRACE_PERFORMANCE is enabled. */
|
||||||
__attribute__((format (printf, 2, 3)))
|
__attribute__((format (printf, 2, 3)))
|
||||||
@ -137,7 +137,7 @@ extern void trace_printf_key_fl(const char *file, int line, struct trace_key *ke
|
|||||||
__attribute__((format (printf, 4, 5)))
|
__attribute__((format (printf, 4, 5)))
|
||||||
extern void trace_argv_printf_fl(const char *file, int line, const char **argv,
|
extern void trace_argv_printf_fl(const char *file, int line, const char **argv,
|
||||||
const char *format, ...);
|
const char *format, ...);
|
||||||
extern void trace_strbuf_fl(const char *file, int line, struct trace_key *key,
|
void trace_strbuf_fl(const char *file, int line, struct trace_key *key,
|
||||||
const struct strbuf *data);
|
const struct strbuf *data);
|
||||||
__attribute__((format (printf, 4, 5)))
|
__attribute__((format (printf, 4, 5)))
|
||||||
extern void trace_performance_fl(const char *file, int line,
|
extern void trace_performance_fl(const char *file, int line,
|
||||||
|
@ -134,7 +134,7 @@ struct transport {
|
|||||||
#define TRANSPORT_PUSH_OPTIONS (1<<14)
|
#define TRANSPORT_PUSH_OPTIONS (1<<14)
|
||||||
#define TRANSPORT_RECURSE_SUBMODULES_ONLY (1<<15)
|
#define TRANSPORT_RECURSE_SUBMODULES_ONLY (1<<15)
|
||||||
|
|
||||||
extern int transport_summary_width(const struct ref *refs);
|
int transport_summary_width(const struct ref *refs);
|
||||||
|
|
||||||
/* Returns a transport suitable for the url */
|
/* Returns a transport suitable for the url */
|
||||||
struct transport *transport_get(struct remote *, const char *);
|
struct transport *transport_get(struct remote *, const char *);
|
||||||
@ -263,5 +263,5 @@ void transport_print_push_status(const char *dest, struct ref *refs,
|
|||||||
int verbose, int porcelain, unsigned int *reject_reasons);
|
int verbose, int porcelain, unsigned int *reject_reasons);
|
||||||
|
|
||||||
typedef void alternate_ref_fn(const struct object_id *oid, void *);
|
typedef void alternate_ref_fn(const struct object_id *oid, void *);
|
||||||
extern void for_each_alternate_ref(alternate_ref_fn, void *);
|
void for_each_alternate_ref(alternate_ref_fn, void *);
|
||||||
#endif
|
#endif
|
||||||
|
@ -67,8 +67,8 @@ struct traverse_info {
|
|||||||
};
|
};
|
||||||
|
|
||||||
int get_tree_entry(const struct object_id *, const char *, struct object_id *, unsigned *);
|
int get_tree_entry(const struct object_id *, const char *, struct object_id *, unsigned *);
|
||||||
extern char *make_traverse_path(char *path, const struct traverse_info *info, const struct name_entry *n);
|
char *make_traverse_path(char *path, const struct traverse_info *info, const struct name_entry *n);
|
||||||
extern void setup_traverse_info(struct traverse_info *info, const char *base);
|
void setup_traverse_info(struct traverse_info *info, const char *base);
|
||||||
|
|
||||||
static inline int traverse_path_len(const struct traverse_info *info, const struct name_entry *n)
|
static inline int traverse_path_len(const struct traverse_info *info, const struct name_entry *n)
|
||||||
{
|
{
|
||||||
|
@ -13,11 +13,11 @@ void upload_pack(struct upload_pack_options *options);
|
|||||||
struct repository;
|
struct repository;
|
||||||
struct argv_array;
|
struct argv_array;
|
||||||
struct packet_reader;
|
struct packet_reader;
|
||||||
extern int upload_pack_v2(struct repository *r, struct argv_array *keys,
|
int upload_pack_v2(struct repository *r, struct argv_array *keys,
|
||||||
struct packet_reader *request);
|
struct packet_reader *request);
|
||||||
|
|
||||||
struct strbuf;
|
struct strbuf;
|
||||||
extern int upload_pack_advertise(struct repository *r,
|
int upload_pack_advertise(struct repository *r,
|
||||||
struct strbuf *value);
|
struct strbuf *value);
|
||||||
|
|
||||||
#endif /* UPLOAD_PACK_H */
|
#endif /* UPLOAD_PACK_H */
|
||||||
|
16
url.h
16
url.h
@ -3,14 +3,14 @@
|
|||||||
|
|
||||||
struct strbuf;
|
struct strbuf;
|
||||||
|
|
||||||
extern int is_url(const char *url);
|
int is_url(const char *url);
|
||||||
extern int is_urlschemechar(int first_flag, int ch);
|
int is_urlschemechar(int first_flag, int ch);
|
||||||
extern char *url_decode(const char *url);
|
char *url_decode(const char *url);
|
||||||
extern char *url_decode_mem(const char *url, int len);
|
char *url_decode_mem(const char *url, int len);
|
||||||
extern char *url_decode_parameter_name(const char **query);
|
char *url_decode_parameter_name(const char **query);
|
||||||
extern char *url_decode_parameter_value(const char **query);
|
char *url_decode_parameter_value(const char **query);
|
||||||
|
|
||||||
extern void end_url_with_slash(struct strbuf *buf, const char *url);
|
void end_url_with_slash(struct strbuf *buf, const char *url);
|
||||||
extern void str_end_url_with_slash(const char *url, char **dest);
|
void str_end_url_with_slash(const char *url, char **dest);
|
||||||
|
|
||||||
#endif /* URL_H */
|
#endif /* URL_H */
|
||||||
|
@ -33,7 +33,7 @@ struct url_info {
|
|||||||
* '?...' and '#...' portion; will always be >= 1 */
|
* '?...' and '#...' portion; will always be >= 1 */
|
||||||
};
|
};
|
||||||
|
|
||||||
extern char *url_normalize(const char *, struct url_info *);
|
char *url_normalize(const char *, struct url_info *);
|
||||||
|
|
||||||
struct urlmatch_item {
|
struct urlmatch_item {
|
||||||
size_t hostmatch_len;
|
size_t hostmatch_len;
|
||||||
@ -52,6 +52,6 @@ struct urlmatch_config {
|
|||||||
int (*cascade_fn)(const char *var, const char *value, void *cb);
|
int (*cascade_fn)(const char *var, const char *value, void *cb);
|
||||||
};
|
};
|
||||||
|
|
||||||
extern int urlmatch_config_entry(const char *var, const char *value, void *cb);
|
int urlmatch_config_entry(const char *var, const char *value, void *cb);
|
||||||
|
|
||||||
#endif /* URL_MATCH_H */
|
#endif /* URL_MATCH_H */
|
||||||
|
2
utf8.h
2
utf8.h
@ -16,7 +16,7 @@ __attribute__((format (printf, 2, 3)))
|
|||||||
int utf8_fprintf(FILE *, const char *, ...);
|
int utf8_fprintf(FILE *, const char *, ...);
|
||||||
|
|
||||||
extern const char utf8_bom[];
|
extern const char utf8_bom[];
|
||||||
extern int skip_utf8_bom(char **, size_t);
|
int skip_utf8_bom(char **, size_t);
|
||||||
|
|
||||||
void strbuf_add_wrapped_text(struct strbuf *buf,
|
void strbuf_add_wrapped_text(struct strbuf *buf,
|
||||||
const char *text, int indent, int indent2, int width);
|
const char *text, int indent, int indent2, int width);
|
||||||
|
4
varint.h
4
varint.h
@ -1,7 +1,7 @@
|
|||||||
#ifndef VARINT_H
|
#ifndef VARINT_H
|
||||||
#define VARINT_H
|
#define VARINT_H
|
||||||
|
|
||||||
extern int encode_varint(uintmax_t, unsigned char *);
|
int encode_varint(uintmax_t, unsigned char *);
|
||||||
extern uintmax_t decode_varint(const unsigned char **);
|
uintmax_t decode_varint(const unsigned char **);
|
||||||
|
|
||||||
#endif /* VARINT_H */
|
#endif /* VARINT_H */
|
||||||
|
@ -13,6 +13,6 @@ struct sliding_view {
|
|||||||
|
|
||||||
#define SLIDING_VIEW_INIT(input, len) { (input), 0, 0, (len), STRBUF_INIT }
|
#define SLIDING_VIEW_INIT(input, len) { (input), 0, 0, (len), STRBUF_INIT }
|
||||||
|
|
||||||
extern int move_window(struct sliding_view *view, off_t off, size_t width);
|
int move_window(struct sliding_view *view, off_t off, size_t width);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
struct line_buffer;
|
struct line_buffer;
|
||||||
struct sliding_view;
|
struct sliding_view;
|
||||||
|
|
||||||
extern int svndiff0_apply(struct line_buffer *delta, off_t delta_len,
|
int svndiff0_apply(struct line_buffer *delta, off_t delta_len,
|
||||||
struct sliding_view *preimage, FILE *postimage);
|
struct sliding_view *preimage, FILE *postimage);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
20
worktree.h
20
worktree.h
@ -30,37 +30,37 @@ struct worktree {
|
|||||||
* The caller is responsible for freeing the memory from the returned
|
* The caller is responsible for freeing the memory from the returned
|
||||||
* worktree(s).
|
* worktree(s).
|
||||||
*/
|
*/
|
||||||
extern struct worktree **get_worktrees(unsigned flags);
|
struct worktree **get_worktrees(unsigned flags);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Returns 1 if linked worktrees exist, 0 otherwise.
|
* Returns 1 if linked worktrees exist, 0 otherwise.
|
||||||
*/
|
*/
|
||||||
extern int submodule_uses_worktrees(const char *path);
|
int submodule_uses_worktrees(const char *path);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Return git dir of the worktree. Note that the path may be relative.
|
* Return git dir of the worktree. Note that the path may be relative.
|
||||||
* If wt is NULL, git dir of current worktree is returned.
|
* If wt is NULL, git dir of current worktree is returned.
|
||||||
*/
|
*/
|
||||||
extern const char *get_worktree_git_dir(const struct worktree *wt);
|
const char *get_worktree_git_dir(const struct worktree *wt);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Search a worktree that can be unambiguously identified by
|
* Search a worktree that can be unambiguously identified by
|
||||||
* "arg". "prefix" must not be NULL.
|
* "arg". "prefix" must not be NULL.
|
||||||
*/
|
*/
|
||||||
extern struct worktree *find_worktree(struct worktree **list,
|
struct worktree *find_worktree(struct worktree **list,
|
||||||
const char *prefix,
|
const char *prefix,
|
||||||
const char *arg);
|
const char *arg);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Return true if the given worktree is the main one.
|
* Return true if the given worktree is the main one.
|
||||||
*/
|
*/
|
||||||
extern int is_main_worktree(const struct worktree *wt);
|
int is_main_worktree(const struct worktree *wt);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Return the reason string if the given worktree is locked or NULL
|
* Return the reason string if the given worktree is locked or NULL
|
||||||
* otherwise.
|
* otherwise.
|
||||||
*/
|
*/
|
||||||
extern const char *worktree_lock_reason(struct worktree *wt);
|
const char *worktree_lock_reason(struct worktree *wt);
|
||||||
|
|
||||||
#define WT_VALIDATE_WORKTREE_MISSING_OK (1 << 0)
|
#define WT_VALIDATE_WORKTREE_MISSING_OK (1 << 0)
|
||||||
|
|
||||||
@ -68,27 +68,27 @@ extern const char *worktree_lock_reason(struct worktree *wt);
|
|||||||
* Return zero if the worktree is in good condition. Error message is
|
* Return zero if the worktree is in good condition. Error message is
|
||||||
* returned if "errmsg" is not NULL.
|
* returned if "errmsg" is not NULL.
|
||||||
*/
|
*/
|
||||||
extern int validate_worktree(const struct worktree *wt,
|
int validate_worktree(const struct worktree *wt,
|
||||||
struct strbuf *errmsg,
|
struct strbuf *errmsg,
|
||||||
unsigned flags);
|
unsigned flags);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Update worktrees/xxx/gitdir with the new path.
|
* Update worktrees/xxx/gitdir with the new path.
|
||||||
*/
|
*/
|
||||||
extern void update_worktree_location(struct worktree *wt,
|
void update_worktree_location(struct worktree *wt,
|
||||||
const char *path_);
|
const char *path_);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Free up the memory for worktree(s)
|
* Free up the memory for worktree(s)
|
||||||
*/
|
*/
|
||||||
extern void free_worktrees(struct worktree **);
|
void free_worktrees(struct worktree **);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check if a per-worktree symref points to a ref in the main worktree
|
* Check if a per-worktree symref points to a ref in the main worktree
|
||||||
* or any linked worktree, and return the worktree that holds the ref,
|
* or any linked worktree, and return the worktree that holds the ref,
|
||||||
* or NULL otherwise. The result may be destroyed by the next call.
|
* or NULL otherwise. The result may be destroyed by the next call.
|
||||||
*/
|
*/
|
||||||
extern const struct worktree *find_shared_symref(const char *symref,
|
const struct worktree *find_shared_symref(const char *symref,
|
||||||
const char *target);
|
const char *target);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -27,9 +27,9 @@ int read_mmfile(mmfile_t *ptr, const char *filename);
|
|||||||
void read_mmblob(mmfile_t *ptr, const struct object_id *oid);
|
void read_mmblob(mmfile_t *ptr, const struct object_id *oid);
|
||||||
int buffer_is_binary(const char *ptr, unsigned long size);
|
int buffer_is_binary(const char *ptr, unsigned long size);
|
||||||
|
|
||||||
extern void xdiff_set_find_func(xdemitconf_t *xecfg, const char *line, int cflags);
|
void xdiff_set_find_func(xdemitconf_t *xecfg, const char *line, int cflags);
|
||||||
extern void xdiff_clear_find_func(xdemitconf_t *xecfg);
|
void xdiff_clear_find_func(xdemitconf_t *xecfg);
|
||||||
extern int git_xmerge_config(const char *var, const char *value, void *cb);
|
int git_xmerge_config(const char *var, const char *value, void *cb);
|
||||||
extern int git_xmerge_style;
|
extern int git_xmerge_style;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -46,7 +46,7 @@ void discard_hunk_line(void *priv,
|
|||||||
* The `flags` given as XDF_WHITESPACE_FLAGS determine how white spaces
|
* The `flags` given as XDF_WHITESPACE_FLAGS determine how white spaces
|
||||||
* are treated for the comparision.
|
* are treated for the comparision.
|
||||||
*/
|
*/
|
||||||
extern int xdiff_compare_lines(const char *l1, long s1,
|
int xdiff_compare_lines(const char *l1, long s1,
|
||||||
const char *l2, long s2, long flags);
|
const char *l2, long s2, long flags);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -54,6 +54,6 @@ extern int xdiff_compare_lines(const char *l1, long s1,
|
|||||||
* The `flags` given as XDF_WHITESPACE_FLAGS determine how white spaces
|
* The `flags` given as XDF_WHITESPACE_FLAGS determine how white spaces
|
||||||
* are treated for the hash.
|
* are treated for the hash.
|
||||||
*/
|
*/
|
||||||
extern unsigned long xdiff_hash_string(const char *s, size_t len, long flags);
|
unsigned long xdiff_hash_string(const char *s, size_t len, long flags);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user