1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-06-01 14:46:08 +02:00

config: replace 'value_regex' with 'value_pattern'

The 'value_regex' argument in the 'git config' builtin is poorly named,
especially related to an upcoming change that allows exact string
matches instead of ERE pattern matches.

Perform a mostly mechanical change of every instance of 'value_regex' to
'value_pattern' in the codebase. This is only critical for documentation
and error messages, but it is best to be consistent inside the codebase,
too.

For documentation, use 'value-pattern' which is better punctuation. This
affects Documentation/git-config.txt and the usage in builtin/config.c,
which was already mixed between 'value_regex' and 'value-regex'.

I gave some thought to leaving the value_regex variables inside config.c
that are regex_t pointers. However, it is probably best to keep the name
consistent with the rest of the variables.

This does not update the translations inside the po/ directory, as that
creates conflicts with ongoing work. The input strings should
automatically update through automation, and a few of the output strings
currently use "[value_regex]" directly.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Derrick Stolee 2020-11-25 22:12:50 +00:00 committed by Junio C Hamano
parent 504ee1290e
commit 247e2f822e
4 changed files with 44 additions and 44 deletions

View File

@ -9,15 +9,15 @@ git-config - Get and set repository or global options
SYNOPSIS SYNOPSIS
-------- --------
[verse] [verse]
'git config' [<file-option>] [--type=<type>] [--show-origin] [--show-scope] [-z|--null] name [value [value_regex]] 'git config' [<file-option>] [--type=<type>] [--show-origin] [--show-scope] [-z|--null] name [value [value-pattern]]
'git config' [<file-option>] [--type=<type>] --add name value 'git config' [<file-option>] [--type=<type>] --add name value
'git config' [<file-option>] [--type=<type>] --replace-all name value [value_regex] 'git config' [<file-option>] [--type=<type>] --replace-all name value [value-pattern]
'git config' [<file-option>] [--type=<type>] [--show-origin] [--show-scope] [-z|--null] --get name [value_regex] 'git config' [<file-option>] [--type=<type>] [--show-origin] [--show-scope] [-z|--null] --get name [value-pattern]
'git config' [<file-option>] [--type=<type>] [--show-origin] [--show-scope] [-z|--null] --get-all name [value_regex] 'git config' [<file-option>] [--type=<type>] [--show-origin] [--show-scope] [-z|--null] --get-all name [value-pattern]
'git config' [<file-option>] [--type=<type>] [--show-origin] [--show-scope] [-z|--null] [--name-only] --get-regexp name_regex [value_regex] 'git config' [<file-option>] [--type=<type>] [--show-origin] [--show-scope] [-z|--null] [--name-only] --get-regexp name_regex [value-pattern]
'git config' [<file-option>] [--type=<type>] [-z|--null] --get-urlmatch name URL 'git config' [<file-option>] [--type=<type>] [-z|--null] --get-urlmatch name URL
'git config' [<file-option>] --unset name [value_regex] 'git config' [<file-option>] --unset name [value-pattern]
'git config' [<file-option>] --unset-all name [value_regex] 'git config' [<file-option>] --unset-all name [value-pattern]
'git config' [<file-option>] --rename-section old_name new_name 'git config' [<file-option>] --rename-section old_name new_name
'git config' [<file-option>] --remove-section name 'git config' [<file-option>] --remove-section name
'git config' [<file-option>] [--show-origin] [--show-scope] [-z|--null] [--name-only] -l | --list 'git config' [<file-option>] [--show-origin] [--show-scope] [-z|--null] [--name-only] -l | --list
@ -33,7 +33,7 @@ escaped.
Multiple lines can be added to an option by using the `--add` option. Multiple lines can be added to an option by using the `--add` option.
If you want to update or unset an option which can occur on multiple If you want to update or unset an option which can occur on multiple
lines, a POSIX regexp `value_regex` needs to be given. Only the lines, a POSIX regexp `value-pattern` needs to be given. Only the
existing values that match the regexp are updated or unset. If existing values that match the regexp are updated or unset. If
you want to handle the lines that do *not* match the regex, just you want to handle the lines that do *not* match the regex, just
prepend a single exclamation mark in front (see also <<EXAMPLES>>). prepend a single exclamation mark in front (see also <<EXAMPLES>>).
@ -73,11 +73,11 @@ OPTIONS
--replace-all:: --replace-all::
Default behavior is to replace at most one line. This replaces Default behavior is to replace at most one line. This replaces
all lines matching the key (and optionally the value_regex). all lines matching the key (and optionally the `value-pattern`).
--add:: --add::
Adds a new line to the option without altering any existing Adds a new line to the option without altering any existing
values. This is the same as providing '^$' as the value_regex values. This is the same as providing '^$' as the `value-pattern`
in `--replace-all`. in `--replace-all`.
--get:: --get::

View File

@ -133,14 +133,14 @@ static struct option builtin_config_options[] = {
OPT_STRING('f', "file", &given_config_source.file, N_("file"), N_("use given config file")), OPT_STRING('f', "file", &given_config_source.file, N_("file"), N_("use given config file")),
OPT_STRING(0, "blob", &given_config_source.blob, N_("blob-id"), N_("read config from given blob object")), OPT_STRING(0, "blob", &given_config_source.blob, N_("blob-id"), N_("read config from given blob object")),
OPT_GROUP(N_("Action")), OPT_GROUP(N_("Action")),
OPT_BIT(0, "get", &actions, N_("get value: name [value-regex]"), ACTION_GET), OPT_BIT(0, "get", &actions, N_("get value: name [value-pattern]"), ACTION_GET),
OPT_BIT(0, "get-all", &actions, N_("get all values: key [value-regex]"), ACTION_GET_ALL), OPT_BIT(0, "get-all", &actions, N_("get all values: key [value-pattern]"), ACTION_GET_ALL),
OPT_BIT(0, "get-regexp", &actions, N_("get values for regexp: name-regex [value-regex]"), ACTION_GET_REGEXP), OPT_BIT(0, "get-regexp", &actions, N_("get values for regexp: name-regex [value-pattern]"), ACTION_GET_REGEXP),
OPT_BIT(0, "get-urlmatch", &actions, N_("get value specific for the URL: section[.var] URL"), ACTION_GET_URLMATCH), OPT_BIT(0, "get-urlmatch", &actions, N_("get value specific for the URL: section[.var] URL"), ACTION_GET_URLMATCH),
OPT_BIT(0, "replace-all", &actions, N_("replace all matching variables: name value [value_regex]"), ACTION_REPLACE_ALL), OPT_BIT(0, "replace-all", &actions, N_("replace all matching variables: name value [value-pattern]"), ACTION_REPLACE_ALL),
OPT_BIT(0, "add", &actions, N_("add a new variable: name value"), ACTION_ADD), OPT_BIT(0, "add", &actions, N_("add a new variable: name value"), ACTION_ADD),
OPT_BIT(0, "unset", &actions, N_("remove a variable: name [value-regex]"), ACTION_UNSET), OPT_BIT(0, "unset", &actions, N_("remove a variable: name [value-pattern]"), ACTION_UNSET),
OPT_BIT(0, "unset-all", &actions, N_("remove all matches: name [value-regex]"), ACTION_UNSET_ALL), OPT_BIT(0, "unset-all", &actions, N_("remove all matches: name [value-pattern]"), ACTION_UNSET_ALL),
OPT_BIT(0, "rename-section", &actions, N_("rename section: old-name new-name"), ACTION_RENAME_SECTION), OPT_BIT(0, "rename-section", &actions, N_("rename section: old-name new-name"), ACTION_RENAME_SECTION),
OPT_BIT(0, "remove-section", &actions, N_("remove a section: name"), ACTION_REMOVE_SECTION), OPT_BIT(0, "remove-section", &actions, N_("remove a section: name"), ACTION_REMOVE_SECTION),
OPT_BIT('l', "list", &actions, N_("list all"), ACTION_LIST), OPT_BIT('l', "list", &actions, N_("list all"), ACTION_LIST),

View File

@ -2415,7 +2415,7 @@ struct config_store_data {
size_t baselen; size_t baselen;
char *key; char *key;
int do_not_match; int do_not_match;
regex_t *value_regex; regex_t *value_pattern;
int multi_replace; int multi_replace;
struct { struct {
size_t begin, end; size_t begin, end;
@ -2429,10 +2429,10 @@ struct config_store_data {
static void config_store_data_clear(struct config_store_data *store) static void config_store_data_clear(struct config_store_data *store)
{ {
free(store->key); free(store->key);
if (store->value_regex != NULL && if (store->value_pattern != NULL &&
store->value_regex != CONFIG_REGEX_NONE) { store->value_pattern != CONFIG_REGEX_NONE) {
regfree(store->value_regex); regfree(store->value_pattern);
free(store->value_regex); free(store->value_pattern);
} }
free(store->parsed); free(store->parsed);
free(store->seen); free(store->seen);
@ -2444,13 +2444,13 @@ static int matches(const char *key, const char *value,
{ {
if (strcmp(key, store->key)) if (strcmp(key, store->key))
return 0; /* not ours */ return 0; /* not ours */
if (!store->value_regex) if (!store->value_pattern)
return 1; /* always matches */ return 1; /* always matches */
if (store->value_regex == CONFIG_REGEX_NONE) if (store->value_pattern == CONFIG_REGEX_NONE)
return 0; /* never matches */ return 0; /* never matches */
return store->do_not_match ^ return store->do_not_match ^
(value && !regexec(store->value_regex, value, 0, NULL, 0)); (value && !regexec(store->value_pattern, value, 0, NULL, 0));
} }
static int store_aux_event(enum config_event_t type, static int store_aux_event(enum config_event_t type,
@ -2726,8 +2726,8 @@ void git_config_set(const char *key, const char *value)
/* /*
* If value==NULL, unset in (remove from) config, * If value==NULL, unset in (remove from) config,
* if value_regex!=NULL, disregard key/value pairs where value does not match. * if value_pattern!=NULL, disregard key/value pairs where value does not match.
* if value_regex==CONFIG_REGEX_NONE, do not match any existing values * if value_pattern==CONFIG_REGEX_NONE, do not match any existing values
* (only add a new one) * (only add a new one)
* if flags contains the CONFIG_FLAGS_MULTI_REPLACE flag, all matching * if flags contains the CONFIG_FLAGS_MULTI_REPLACE flag, all matching
* key/values are removed before a single new pair is written. If the * key/values are removed before a single new pair is written. If the
@ -2751,7 +2751,7 @@ void git_config_set(const char *key, const char *value)
*/ */
int git_config_set_multivar_in_file_gently(const char *config_filename, int git_config_set_multivar_in_file_gently(const char *config_filename,
const char *key, const char *value, const char *key, const char *value,
const char *value_regex, const char *value_pattern,
unsigned flags) unsigned flags)
{ {
int fd = -1, in_fd = -1; int fd = -1, in_fd = -1;
@ -2812,22 +2812,22 @@ int git_config_set_multivar_in_file_gently(const char *config_filename,
int i, new_line = 0; int i, new_line = 0;
struct config_options opts; struct config_options opts;
if (value_regex == NULL) if (value_pattern == NULL)
store.value_regex = NULL; store.value_pattern = NULL;
else if (value_regex == CONFIG_REGEX_NONE) else if (value_pattern == CONFIG_REGEX_NONE)
store.value_regex = CONFIG_REGEX_NONE; store.value_pattern = CONFIG_REGEX_NONE;
else { else {
if (value_regex[0] == '!') { if (value_pattern[0] == '!') {
store.do_not_match = 1; store.do_not_match = 1;
value_regex++; value_pattern++;
} else } else
store.do_not_match = 0; store.do_not_match = 0;
store.value_regex = (regex_t*)xmalloc(sizeof(regex_t)); store.value_pattern = (regex_t*)xmalloc(sizeof(regex_t));
if (regcomp(store.value_regex, value_regex, if (regcomp(store.value_pattern, value_pattern,
REG_EXTENDED)) { REG_EXTENDED)) {
error(_("invalid pattern: %s"), value_regex); error(_("invalid pattern: %s"), value_pattern);
FREE_AND_NULL(store.value_regex); FREE_AND_NULL(store.value_pattern);
ret = CONFIG_INVALID_PATTERN; ret = CONFIG_INVALID_PATTERN;
goto out_free; goto out_free;
} }
@ -2997,10 +2997,10 @@ int git_config_set_multivar_in_file_gently(const char *config_filename,
void git_config_set_multivar_in_file(const char *config_filename, void git_config_set_multivar_in_file(const char *config_filename,
const char *key, const char *value, const char *key, const char *value,
const char *value_regex, unsigned flags) const char *value_pattern, unsigned flags)
{ {
if (!git_config_set_multivar_in_file_gently(config_filename, key, value, if (!git_config_set_multivar_in_file_gently(config_filename, key, value,
value_regex, flags)) value_pattern, flags))
return; return;
if (value) if (value)
die(_("could not set '%s' to '%s'"), key, value); die(_("could not set '%s' to '%s'"), key, value);
@ -3009,16 +3009,16 @@ void git_config_set_multivar_in_file(const char *config_filename,
} }
int git_config_set_multivar_gently(const char *key, const char *value, int git_config_set_multivar_gently(const char *key, const char *value,
const char *value_regex, unsigned flags) const char *value_pattern, unsigned flags)
{ {
return git_config_set_multivar_in_file_gently(NULL, key, value, value_regex, return git_config_set_multivar_in_file_gently(NULL, key, value, value_pattern,
flags); flags);
} }
void git_config_set_multivar(const char *key, const char *value, void git_config_set_multivar(const char *key, const char *value,
const char *value_regex, unsigned flags) const char *value_pattern, unsigned flags)
{ {
git_config_set_multivar_in_file(NULL, key, value, value_regex, git_config_set_multivar_in_file(NULL, key, value, value_pattern,
flags); flags);
} }

View File

@ -296,7 +296,7 @@ int git_config_set_multivar_in_file_gently(const char *, const char *, const cha
void git_config_set_multivar_in_file(const char *config_filename, void git_config_set_multivar_in_file(const char *config_filename,
const char *key, const char *key,
const char *value, const char *value,
const char *value_regex, const char *value_pattern,
unsigned flags); unsigned flags);
/** /**