mirror of
https://github.com/git/git.git
synced 2026-02-28 18:48:50 +00:00
help: use list_aliases() for alias listing
help.c has its own get_alias() config callback that duplicates the parsing logic in alias.c. Consolidate by teaching list_aliases() to also store the alias values (via the string_list util field), then use it in list_all_cmds_help_aliases() instead of the private callback. This preserves the existing error checking for value-less alias definitions by checking in alias.c rather than help.c. No functional change intended. Signed-off-by: Jonatan Holmgren <jonatan@jontes.page> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
67ad42147a
commit
3f0cdfa879
8
alias.c
8
alias.c
@@ -29,7 +29,13 @@ static int config_alias_cb(const char *key, const char *value,
|
||||
key, value);
|
||||
}
|
||||
} else if (data->list) {
|
||||
string_list_append(data->list, p);
|
||||
struct string_list_item *item;
|
||||
|
||||
if (!value)
|
||||
return config_error_nonbool(key);
|
||||
|
||||
item = string_list_append(data->list, p);
|
||||
item->util = xstrdup(value);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
17
help.c
17
help.c
@@ -20,6 +20,7 @@
|
||||
#include "prompt.h"
|
||||
#include "fsmonitor-ipc.h"
|
||||
#include "repository.h"
|
||||
#include "alias.h"
|
||||
|
||||
#ifndef NO_CURL
|
||||
#include "git-curl-compat.h" /* For LIBCURL_VERSION only */
|
||||
@@ -469,20 +470,6 @@ void list_developer_interfaces_help(void)
|
||||
putchar('\n');
|
||||
}
|
||||
|
||||
static int get_alias(const char *var, const char *value,
|
||||
const struct config_context *ctx UNUSED, void *data)
|
||||
{
|
||||
struct string_list *list = data;
|
||||
|
||||
if (skip_prefix(var, "alias.", &var)) {
|
||||
if (!value)
|
||||
return config_error_nonbool(var);
|
||||
string_list_append(list, var)->util = xstrdup(value);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void list_all_cmds_help_external_commands(void)
|
||||
{
|
||||
struct string_list others = STRING_LIST_INIT_DUP;
|
||||
@@ -502,7 +489,7 @@ static void list_all_cmds_help_aliases(int longest)
|
||||
struct cmdname_help *aliases;
|
||||
int i;
|
||||
|
||||
repo_config(the_repository, get_alias, &alias_list);
|
||||
list_aliases(&alias_list);
|
||||
string_list_sort(&alias_list);
|
||||
|
||||
for (i = 0; i < alias_list.nr; i++) {
|
||||
|
||||
@@ -112,4 +112,14 @@ test_expect_success 'cannot alias-shadow a sample of regular builtins' '
|
||||
done
|
||||
'
|
||||
|
||||
test_expect_success 'alias without value reports error' '
|
||||
test_when_finished "git config --unset alias.noval" &&
|
||||
cat >>.git/config <<-\EOF &&
|
||||
[alias]
|
||||
noval
|
||||
EOF
|
||||
test_must_fail git noval 2>error &&
|
||||
test_grep "alias.noval" error
|
||||
'
|
||||
|
||||
test_done
|
||||
|
||||
Reference in New Issue
Block a user