summaryrefslogtreecommitdiff
path: root/ident.c
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2017-02-23 03:17:08 -0500
committerJunio C Hamano <gitster@pobox.com>2017-02-23 12:58:47 -0800
commit94425552f308946456bb7823d0a1dd72ebd30bdd (patch)
tree84bb2ac31b5f4e405d77adf28a08806e36edc5a2 /ident.c
parent13b9a24e58f736b70e48846cf7e5b7cfa66c3fec (diff)
downloadgit-94425552f308946456bb7823d0a1dd72ebd30bdd.tar.gz
ident: do not ignore empty config name/emailjk/ident-empty
When we read user.name and user.email from a config file, they go into strbufs. When a caller asks ident_default_name() for the value, we fallback to auto-detecting if the strbuf is empty. That means that explicitly setting an empty string in the config is identical to not setting it at all. This is potentially confusing, as we usually accept a configured value as the final value. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'ident.c')
-rw-r--r--ident.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ident.c b/ident.c
index ead09ff7f6..c0364fe3a1 100644
--- a/ident.c
+++ b/ident.c
@@ -153,7 +153,7 @@ static void copy_email(const struct passwd *pw, struct strbuf *email,
const char *ident_default_name(void)
{
- if (!git_default_name.len) {
+ if (!(ident_config_given & IDENT_NAME_GIVEN) && !git_default_name.len) {
copy_gecos(xgetpwuid_self(&default_name_is_bogus), &git_default_name);
strbuf_trim(&git_default_name);
}
@@ -162,7 +162,7 @@ const char *ident_default_name(void)
const char *ident_default_email(void)
{
- if (!git_default_email.len) {
+ if (!(ident_config_given & IDENT_MAIL_GIVEN) && !git_default_email.len) {
const char *email = getenv("EMAIL");
if (email && email[0]) {