git-remote-ext
[gitweb.git] / ident.c
diff --git a/ident.c b/ident.c
index e67c5ad1e8800250f17793bc826d608429d08ae3..9e2438826dfce158e04549933d5c588dd6abcf5c 100644 (file)
--- a/ident.c
+++ b/ident.c
@@ -85,10 +85,11 @@ static void setup_ident(void)
        if (!git_default_email[0]) {
                const char *email = getenv("EMAIL");
 
-               if (email && email[0])
+               if (email && email[0]) {
                        strlcpy(git_default_email, email,
                                sizeof(git_default_email));
-               else {
+                       user_ident_explicitly_given |= IDENT_MAIL_GIVEN;
+               } else {
                        if (!pw)
                                pw = getpwuid(getuid());
                        if (!pw)
@@ -202,7 +203,7 @@ const char *fmt_ident(const char *name, const char *email,
 
                if ((warn_on_no_name || error_on_no_name) &&
                    name == git_default_name && env_hint) {
-                       fprintf(stderr, env_hint);
+                       fputs(env_hint, stderr);
                        env_hint = NULL; /* warn only once */
                }
                if (error_on_no_name)
@@ -258,3 +259,12 @@ const char *git_committer_info(int flag)
                         getenv("GIT_COMMITTER_DATE"),
                         flag);
 }
+
+int user_ident_sufficiently_given(void)
+{
+#ifndef WINDOWS
+       return (user_ident_explicitly_given & IDENT_MAIL_GIVEN);
+#else
+       return (user_ident_explicitly_given == IDENT_ALL_GIVEN);
+#endif
+}