aboutsummaryrefslogtreecommitdiff
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
git-94425552f308946456bb7823d0a1dd72ebd30bdd.tar.xz
ident: do not ignore empty config name/email
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 ead09ff7f..c0364fe3a 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]) {