|
11 | 11 | #include "string-list.h" |
12 | 12 | #include "pack-revindex.h" |
13 | 13 | #include "hash.h" |
| 14 | +#include "config.h" |
14 | 15 |
|
15 | 16 | #ifndef platform_SHA_CTX |
16 | 17 | /* |
@@ -1865,205 +1866,16 @@ extern int packed_object_info(struct packed_git *pack, off_t offset, struct obje |
1865 | 1866 | /* Dumb servers support */ |
1866 | 1867 | extern int update_server_info(int); |
1867 | 1868 |
|
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 |
1945 | 1869 | extern const char *get_log_output_encoding(void); |
1946 | 1870 | extern const char *get_commit_output_encoding(void); |
1947 | 1871 |
|
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 | | - |
2050 | 1872 | /* |
2051 | 1873 | * This is a hack for test programs like test-dump-untracked-cache to |
2052 | 1874 | * ensure that they do not modify the untracked cache when reading it. |
2053 | 1875 | * Do not use it otherwise! |
2054 | 1876 | */ |
2055 | 1877 | extern int ignore_untracked_cache_config; |
2056 | 1878 |
|
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 | | - |
2067 | 1879 | extern int committer_ident_sufficiently_given(void); |
2068 | 1880 | extern int author_ident_sufficiently_given(void); |
2069 | 1881 |
|
|
0 commit comments