14
#define IDENT_NAME_GIVEN 01
15
#define IDENT_MAIL_GIVEN 02
16
#define IDENT_ALL_GIVEN (IDENT_NAME_GIVEN|IDENT_MAIL_GIVEN)
17
-static int user_ident_explicitly_given;
17
+static int committer_ident_explicitly_given;
18
+static int author_ident_explicitly_given;
19
20
#ifdef NO_GECOS_IN_PWENT
21
#define get_gecos(ignored) "&"
114
115
if (email && email[0]) {
116
strbuf_addstr(&git_default_email, email);
116
- user_ident_explicitly_given |= IDENT_MAIL_GIVEN;
117
+ committer_ident_explicitly_given |= IDENT_MAIL_GIVEN;
118
+ author_ident_explicitly_given |= IDENT_MAIL_GIVEN;
119
} else
120
copy_email(xgetpwuid_self(), &git_default_email);
121
strbuf_trim(&git_default_email);
333
334
const char *git_author_info(int flag)
335
{
336
+ if (getenv("GIT_AUTHOR_NAME"))
337
+ author_ident_explicitly_given |= IDENT_NAME_GIVEN;
338
+ if (getenv("GIT_AUTHOR_EMAIL"))
339
+ author_ident_explicitly_given |= IDENT_MAIL_GIVEN;
340
return fmt_ident(getenv("GIT_AUTHOR_NAME"),
341
getenv("GIT_AUTHOR_EMAIL"),
342
getenv("GIT_AUTHOR_DATE"),
346
const char *git_committer_info(int flag)
347
{
348
if (getenv("GIT_COMMITTER_NAME"))
343
- user_ident_explicitly_given |= IDENT_NAME_GIVEN;
349
+ committer_ident_explicitly_given |= IDENT_NAME_GIVEN;
350
if (getenv("GIT_COMMITTER_EMAIL"))
345
- user_ident_explicitly_given |= IDENT_MAIL_GIVEN;
351
+ committer_ident_explicitly_given |= IDENT_MAIL_GIVEN;
352
return fmt_ident(getenv("GIT_COMMITTER_NAME"),
353
getenv("GIT_COMMITTER_EMAIL"),
354
getenv("GIT_COMMITTER_DATE"),
355
flag);
356
}
357
352
-int user_ident_sufficiently_given(void)
358
+static int ident_is_sufficient(int user_ident_explicitly_given)
359
{
360
#ifndef WINDOWS
361
return (user_ident_explicitly_given & IDENT_MAIL_GIVEN);
364
#endif
365
}
366
367
+int committer_ident_sufficiently_given(void)
368
+{
369
+ return ident_is_sufficient(committer_ident_explicitly_given);
370
+}
371
+
372
+int author_ident_sufficiently_given(void)
373
+{
374
+ return ident_is_sufficient(author_ident_explicitly_given);
375
+}
376
+
377
int git_ident_config(const char *var, const char *value, void *data)
378
{
379
if (!strcmp(var, "user.name")) {
381
return config_error_nonbool(var);
382
strbuf_reset(&git_default_name);
383
strbuf_addstr(&git_default_name, value);
368
- user_ident_explicitly_given |= IDENT_NAME_GIVEN;
384
+ committer_ident_explicitly_given |= IDENT_NAME_GIVEN;
385
+ author_ident_explicitly_given |= IDENT_NAME_GIVEN;
386
return 0;
387
}
388
391
return config_error_nonbool(var);
392
strbuf_reset(&git_default_email);
393
strbuf_addstr(&git_default_email, value);
377
- user_ident_explicitly_given |= IDENT_MAIL_GIVEN;
394
+ committer_ident_explicitly_given |= IDENT_MAIL_GIVEN;
395
+ author_ident_explicitly_given |= IDENT_MAIL_GIVEN;
396
return 0;
397
}
398