Skip to content

Commit e67a57f

Browse files
bmwillgitster
authored andcommitted
config: create config.h
Move all config related declarations from cache.h to a new config.h header file. This makes cache.h smaller and allows for the opportunity in a following patch to only include config.h when needed. Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent a9bcf65 commit e67a57f

File tree

2 files changed

+195
-189
lines changed

2 files changed

+195
-189
lines changed

cache.h

Lines changed: 1 addition & 189 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#include "string-list.h"
1212
#include "pack-revindex.h"
1313
#include "hash.h"
14+
#include "config.h"
1415

1516
#ifndef platform_SHA_CTX
1617
/*
@@ -1865,205 +1866,16 @@ extern int packed_object_info(struct packed_git *pack, off_t offset, struct obje
18651866
/* Dumb servers support */
18661867
extern int update_server_info(int);
18671868

1868-
/* git_config_parse_key() returns these negated: */
1869-
#define CONFIG_INVALID_KEY 1
1870-
#define CONFIG_NO_SECTION_OR_NAME 2
1871-
/* git_config_set_gently(), git_config_set_multivar_gently() return the above or these: */
1872-
#define CONFIG_NO_LOCK -1
1873-
#define CONFIG_INVALID_FILE 3
1874-
#define CONFIG_NO_WRITE 4
1875-
#define CONFIG_NOTHING_SET 5
1876-
#define CONFIG_INVALID_PATTERN 6
1877-
#define CONFIG_GENERIC_ERROR 7
1878-
1879-
#define CONFIG_REGEX_NONE ((void *)1)
1880-
1881-
struct git_config_source {
1882-
unsigned int use_stdin:1;
1883-
const char *file;
1884-
const char *blob;
1885-
};
1886-
1887-
enum config_origin_type {
1888-
CONFIG_ORIGIN_BLOB,
1889-
CONFIG_ORIGIN_FILE,
1890-
CONFIG_ORIGIN_STDIN,
1891-
CONFIG_ORIGIN_SUBMODULE_BLOB,
1892-
CONFIG_ORIGIN_CMDLINE
1893-
};
1894-
1895-
struct config_options {
1896-
unsigned int respect_includes : 1;
1897-
const char *git_dir;
1898-
};
1899-
1900-
typedef int (*config_fn_t)(const char *, const char *, void *);
1901-
extern int git_default_config(const char *, const char *, void *);
1902-
extern int git_config_from_file(config_fn_t fn, const char *, void *);
1903-
extern int git_config_from_mem(config_fn_t fn, const enum config_origin_type,
1904-
const char *name, const char *buf, size_t len, void *data);
1905-
extern int git_config_from_blob_sha1(config_fn_t fn, const char *name,
1906-
const unsigned char *sha1, void *data);
1907-
extern void git_config_push_parameter(const char *text);
1908-
extern int git_config_from_parameters(config_fn_t fn, void *data);
1909-
extern void read_early_config(config_fn_t cb, void *data);
1910-
extern void git_config(config_fn_t fn, void *);
1911-
extern int git_config_with_options(config_fn_t fn, void *,
1912-
struct git_config_source *config_source,
1913-
const struct config_options *opts);
1914-
extern int git_parse_ulong(const char *, unsigned long *);
1915-
extern int git_parse_maybe_bool(const char *);
1916-
extern int git_config_int(const char *, const char *);
1917-
extern int64_t git_config_int64(const char *, const char *);
1918-
extern unsigned long git_config_ulong(const char *, const char *);
1919-
extern ssize_t git_config_ssize_t(const char *, const char *);
1920-
extern int git_config_bool_or_int(const char *, const char *, int *);
1921-
extern int git_config_bool(const char *, const char *);
1922-
extern int git_config_maybe_bool(const char *, const char *);
1923-
extern int git_config_string(const char **, const char *, const char *);
1924-
extern int git_config_pathname(const char **, const char *, const char *);
1925-
extern int git_config_set_in_file_gently(const char *, const char *, const char *);
1926-
extern void git_config_set_in_file(const char *, const char *, const char *);
1927-
extern int git_config_set_gently(const char *, const char *);
1928-
extern void git_config_set(const char *, const char *);
1929-
extern int git_config_parse_key(const char *, char **, int *);
1930-
extern int git_config_key_is_valid(const char *key);
1931-
extern int git_config_set_multivar_gently(const char *, const char *, const char *, int);
1932-
extern void git_config_set_multivar(const char *, const char *, const char *, int);
1933-
extern int git_config_set_multivar_in_file_gently(const char *, const char *, const char *, const char *, int);
1934-
extern void git_config_set_multivar_in_file(const char *, const char *, const char *, const char *, int);
1935-
extern int git_config_rename_section(const char *, const char *);
1936-
extern int git_config_rename_section_in_file(const char *, const char *, const char *);
1937-
extern const char *git_etc_gitconfig(void);
1938-
extern int git_env_bool(const char *, int);
1939-
extern unsigned long git_env_ulong(const char *, unsigned long);
1940-
extern int git_config_system(void);
1941-
extern int config_error_nonbool(const char *);
1942-
#if defined(__GNUC__)
1943-
#define config_error_nonbool(s) (config_error_nonbool(s), const_error())
1944-
#endif
19451869
extern const char *get_log_output_encoding(void);
19461870
extern const char *get_commit_output_encoding(void);
19471871

1948-
extern int git_config_parse_parameter(const char *, config_fn_t fn, void *data);
1949-
1950-
enum config_scope {
1951-
CONFIG_SCOPE_UNKNOWN = 0,
1952-
CONFIG_SCOPE_SYSTEM,
1953-
CONFIG_SCOPE_GLOBAL,
1954-
CONFIG_SCOPE_REPO,
1955-
CONFIG_SCOPE_CMDLINE,
1956-
};
1957-
1958-
extern enum config_scope current_config_scope(void);
1959-
extern const char *current_config_origin_type(void);
1960-
extern const char *current_config_name(void);
1961-
1962-
struct config_include_data {
1963-
int depth;
1964-
config_fn_t fn;
1965-
void *data;
1966-
const struct config_options *opts;
1967-
};
1968-
#define CONFIG_INCLUDE_INIT { 0 }
1969-
extern int git_config_include(const char *name, const char *value, void *data);
1970-
1971-
/*
1972-
* Match and parse a config key of the form:
1973-
*
1974-
* section.(subsection.)?key
1975-
*
1976-
* (i.e., what gets handed to a config_fn_t). The caller provides the section;
1977-
* we return -1 if it does not match, 0 otherwise. The subsection and key
1978-
* out-parameters are filled by the function (and *subsection is NULL if it is
1979-
* missing).
1980-
*
1981-
* If the subsection pointer-to-pointer passed in is NULL, returns 0 only if
1982-
* there is no subsection at all.
1983-
*/
1984-
extern int parse_config_key(const char *var,
1985-
const char *section,
1986-
const char **subsection, int *subsection_len,
1987-
const char **key);
1988-
1989-
struct config_set_element {
1990-
struct hashmap_entry ent;
1991-
char *key;
1992-
struct string_list value_list;
1993-
};
1994-
1995-
struct configset_list_item {
1996-
struct config_set_element *e;
1997-
int value_index;
1998-
};
1999-
2000-
/*
2001-
* the contents of the list are ordered according to their
2002-
* position in the config files and order of parsing the files.
2003-
* (i.e. key-value pair at the last position of .git/config will
2004-
* be at the last item of the list)
2005-
*/
2006-
struct configset_list {
2007-
struct configset_list_item *items;
2008-
unsigned int nr, alloc;
2009-
};
2010-
2011-
struct config_set {
2012-
struct hashmap config_hash;
2013-
int hash_initialized;
2014-
struct configset_list list;
2015-
};
2016-
2017-
extern void git_configset_init(struct config_set *cs);
2018-
extern int git_configset_add_file(struct config_set *cs, const char *filename);
2019-
extern int git_configset_get_value(struct config_set *cs, const char *key, const char **value);
2020-
extern const struct string_list *git_configset_get_value_multi(struct config_set *cs, const char *key);
2021-
extern void git_configset_clear(struct config_set *cs);
2022-
extern int git_configset_get_string_const(struct config_set *cs, const char *key, const char **dest);
2023-
extern int git_configset_get_string(struct config_set *cs, const char *key, char **dest);
2024-
extern int git_configset_get_int(struct config_set *cs, const char *key, int *dest);
2025-
extern int git_configset_get_ulong(struct config_set *cs, const char *key, unsigned long *dest);
2026-
extern int git_configset_get_bool(struct config_set *cs, const char *key, int *dest);
2027-
extern int git_configset_get_bool_or_int(struct config_set *cs, const char *key, int *is_bool, int *dest);
2028-
extern int git_configset_get_maybe_bool(struct config_set *cs, const char *key, int *dest);
2029-
extern int git_configset_get_pathname(struct config_set *cs, const char *key, const char **dest);
2030-
2031-
extern int git_config_get_value(const char *key, const char **value);
2032-
extern const struct string_list *git_config_get_value_multi(const char *key);
2033-
extern void git_config_clear(void);
2034-
extern void git_config_iter(config_fn_t fn, void *data);
2035-
extern int git_config_get_string_const(const char *key, const char **dest);
2036-
extern int git_config_get_string(const char *key, char **dest);
2037-
extern int git_config_get_int(const char *key, int *dest);
2038-
extern int git_config_get_ulong(const char *key, unsigned long *dest);
2039-
extern int git_config_get_bool(const char *key, int *dest);
2040-
extern int git_config_get_bool_or_int(const char *key, int *is_bool, int *dest);
2041-
extern int git_config_get_maybe_bool(const char *key, int *dest);
2042-
extern int git_config_get_pathname(const char *key, const char **dest);
2043-
extern int git_config_get_untracked_cache(void);
2044-
extern int git_config_get_split_index(void);
2045-
extern int git_config_get_max_percent_split_change(void);
2046-
2047-
/* This dies if the configured or default date is in the future */
2048-
extern int git_config_get_expiry(const char *key, const char **output);
2049-
20501872
/*
20511873
* This is a hack for test programs like test-dump-untracked-cache to
20521874
* ensure that they do not modify the untracked cache when reading it.
20531875
* Do not use it otherwise!
20541876
*/
20551877
extern int ignore_untracked_cache_config;
20561878

2057-
struct key_value_info {
2058-
const char *filename;
2059-
int linenr;
2060-
enum config_origin_type origin_type;
2061-
enum config_scope scope;
2062-
};
2063-
2064-
extern NORETURN void git_die_config(const char *key, const char *err, ...) __attribute__((format(printf, 2, 3)));
2065-
extern NORETURN void git_die_config_linenr(const char *key, const char *filename, int linenr);
2066-
20671879
extern int committer_ident_sufficiently_given(void);
20681880
extern int author_ident_sufficiently_given(void);
20691881

0 commit comments

Comments
 (0)