gpg-interface: add function for converting trust level to string
Add new helper function `gpg_trust_level_to_str()` which will convert a given member of `enum signature_trust_level` to its corresponding string (in lowercase). For example, `TRUST_ULTIMATE` will yield the string "ultimate". This will abstract out some code in `pretty.c` relating to gpg signature trust levels. Mentored-by: Christian Couder <chriscool@tuxfamily.org> Mentored-by: Hariom Verma <hariom18599@gmail.com> Signed-off-by: Jaydeep Das <jaydeepjd.8914@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
e4a4b31577
commit
803978da49
@ -165,15 +165,17 @@ static struct {
|
||||
{ 0, "TRUST_", GPG_STATUS_TRUST_LEVEL },
|
||||
};
|
||||
|
||||
static struct {
|
||||
/* Keep the order same as enum signature_trust_level */
|
||||
static struct sigcheck_gpg_trust_level {
|
||||
const char *key;
|
||||
const char *display_key;
|
||||
enum signature_trust_level value;
|
||||
} sigcheck_gpg_trust_level[] = {
|
||||
{ "UNDEFINED", TRUST_UNDEFINED },
|
||||
{ "NEVER", TRUST_NEVER },
|
||||
{ "MARGINAL", TRUST_MARGINAL },
|
||||
{ "FULLY", TRUST_FULLY },
|
||||
{ "ULTIMATE", TRUST_ULTIMATE },
|
||||
{ "UNDEFINED", "undefined", TRUST_UNDEFINED },
|
||||
{ "NEVER", "never", TRUST_NEVER },
|
||||
{ "MARGINAL", "marginal", TRUST_MARGINAL },
|
||||
{ "FULLY", "fully", TRUST_FULLY },
|
||||
{ "ULTIMATE", "ultimate", TRUST_ULTIMATE },
|
||||
};
|
||||
|
||||
static void replace_cstring(char **field, const char *line, const char *next)
|
||||
@ -905,6 +907,20 @@ const char *get_signing_key(void)
|
||||
return git_committer_info(IDENT_STRICT | IDENT_NO_DATE);
|
||||
}
|
||||
|
||||
const char *gpg_trust_level_to_str(enum signature_trust_level level)
|
||||
{
|
||||
struct sigcheck_gpg_trust_level *trust;
|
||||
|
||||
if (level < 0 || level >= ARRAY_SIZE(sigcheck_gpg_trust_level))
|
||||
BUG("invalid trust level requested %d", level);
|
||||
|
||||
trust = &sigcheck_gpg_trust_level[level];
|
||||
if (trust->value != level)
|
||||
BUG("sigcheck_gpg_trust_level[] unsorted");
|
||||
|
||||
return sigcheck_gpg_trust_level[level].display_key;
|
||||
}
|
||||
|
||||
int sign_buffer(struct strbuf *buffer, struct strbuf *signature, const char *signing_key)
|
||||
{
|
||||
return use_format->sign_buffer(buffer, signature, signing_key);
|
||||
|
@ -71,6 +71,14 @@ size_t parse_signed_buffer(const char *buf, size_t size);
|
||||
int sign_buffer(struct strbuf *buffer, struct strbuf *signature,
|
||||
const char *signing_key);
|
||||
|
||||
|
||||
/*
|
||||
* Returns corresponding string in lowercase for a given member of
|
||||
* enum signature_trust_level. For example, `TRUST_ULTIMATE` will
|
||||
* return "ultimate".
|
||||
*/
|
||||
const char *gpg_trust_level_to_str(enum signature_trust_level level);
|
||||
|
||||
int git_gpg_config(const char *, const char *, void *);
|
||||
void set_signing_key(const char *);
|
||||
const char *get_signing_key(void);
|
||||
|
18
pretty.c
18
pretty.c
@ -1575,23 +1575,7 @@ static size_t format_commit_one(struct strbuf *sb, /* in UTF-8 */
|
||||
strbuf_addstr(sb, c->signature_check.primary_key_fingerprint);
|
||||
break;
|
||||
case 'T':
|
||||
switch (c->signature_check.trust_level) {
|
||||
case TRUST_UNDEFINED:
|
||||
strbuf_addstr(sb, "undefined");
|
||||
break;
|
||||
case TRUST_NEVER:
|
||||
strbuf_addstr(sb, "never");
|
||||
break;
|
||||
case TRUST_MARGINAL:
|
||||
strbuf_addstr(sb, "marginal");
|
||||
break;
|
||||
case TRUST_FULLY:
|
||||
strbuf_addstr(sb, "fully");
|
||||
break;
|
||||
case TRUST_ULTIMATE:
|
||||
strbuf_addstr(sb, "ultimate");
|
||||
break;
|
||||
}
|
||||
strbuf_addstr(sb, gpg_trust_level_to_str(c->signature_check.trust_level));
|
||||
break;
|
||||
default:
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user