From: "Jaydeep Das via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Jaydeep Das <jaydeepjd.8914@gmail.com>,
Jaydeep Das <jaydeepjd.8914@gmail.com>
Subject: [PATCH v2] gpg-interface: add function for converting trust level to string
Date: Fri, 08 Jul 2022 11:24:07 +0000 [thread overview]
Message-ID: <pull.1281.v2.git.1657279447515.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.1281.git.1657202265048.gitgitgadget@gmail.com>
From: Jaydeep Das <jaydeepjd.8914@gmail.com>
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>
---
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.
Changes since v1:
* gpg_trust_level_to_str() now returns the string in lowercase
Mentored-by: Christian Couder chriscool@tuxfamily.org Mentored-by:
Hariom Verma hariom18599@gmail.com Signed-off-by: Jaydeep Das
jaydeepjd.8914@gmail.com
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1281%2FJDeepD%2Fgpg-wrap-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1281/JDeepD/gpg-wrap-v2
Pull-Request: https://github.com/gitgitgadget/git/pull/1281
Range-diff vs v1:
1: fbbad9cc26a ! 1: 640decc2afe gpg-interface: add function for converting trust level to string
@@
## Metadata ##
-Author: Jaydeep P Das <jaydeepjd.8914@gmail.com>
+Author: Jaydeep Das <jaydeepjd.8914@gmail.com>
## Commit message ##
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. For example, `TRUST_ULTIMATE`
- will yield the string "ULTIMATE".
+ 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.
@@ gpg-interface.c: 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){
++char *gpg_trust_level_to_str(enum signature_trust_level level){
+ if (level < TRUST_UNDEFINED || level > TRUST_ULTIMATE)
+ return NULL;
-+ return sigcheck_gpg_trust_level[level].key;
++ return xstrdup_tolower(sigcheck_gpg_trust_level[level].key);
+}
+
int sign_buffer(struct strbuf *buffer, struct strbuf *signature, const char *signing_key)
@@ gpg-interface.h: size_t parse_signed_buffer(const char *buf, size_t size);
+
+/*
-+ * Returns corresponding string for a given member of
++ * Returns corresponding string in lowercase for a given member of
+ * enum signature_trust_level. For example, `TRUST_ULTIMATE` will
-+ * return "ULTIMATE".
++ * return "ultimate".
+ */
-+const char *gpg_trust_level_to_str(enum signature_trust_level level);
++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 *);
@@ gpg-interface.h: size_t parse_signed_buffer(const char *buf, size_t size);
## pretty.c ##
@@ pretty.c: static size_t format_commit_one(struct strbuf *sb, /* in UTF-8 */
- const struct commit *commit = c->commit;
const char *msg = c->message;
struct commit_list *p;
-- const char *arg, *eol;
-+ const char *arg, *eol, *sig_str;
+ const char *arg, *eol;
++ char *sig_str;
size_t res;
char **slot;
@@ pretty.c: static size_t format_commit_one(struct strbuf *sb, /* in UTF-8 */
- case TRUST_ULTIMATE:
- strbuf_addstr(sb, "ultimate");
- break;
+- }
+ sig_str = gpg_trust_level_to_str(c->signature_check.trust_level);
-+ if (sig_str){
-+ const char *sig_str_lower = xstrdup_tolower(sig_str);
-+ strbuf_addstr(sb, sig_str_lower);
-+ free((char *)sig_str_lower);
- }
++ if (sig_str)
++ strbuf_addstr(sb, sig_str);
++ free(sig_str);
break;
default:
+ return 0;
gpg-interface.c | 7 +++++++
gpg-interface.h | 8 ++++++++
pretty.c | 22 +++++-----------------
3 files changed, 20 insertions(+), 17 deletions(-)
diff --git a/gpg-interface.c b/gpg-interface.c
index 947b58ad4da..4ef660a09fc 100644
--- a/gpg-interface.c
+++ b/gpg-interface.c
@@ -165,6 +165,7 @@ static struct {
{ 0, "TRUST_", GPG_STATUS_TRUST_LEVEL },
};
+/* Keep the order same as enum signature_trust_level */
static struct {
const char *key;
enum signature_trust_level value;
@@ -905,6 +906,12 @@ const char *get_signing_key(void)
return git_committer_info(IDENT_STRICT | IDENT_NO_DATE);
}
+char *gpg_trust_level_to_str(enum signature_trust_level level){
+ if (level < TRUST_UNDEFINED || level > TRUST_ULTIMATE)
+ return NULL;
+ return xstrdup_tolower(sigcheck_gpg_trust_level[level].key);
+}
+
int sign_buffer(struct strbuf *buffer, struct strbuf *signature, const char *signing_key)
{
return use_format->sign_buffer(buffer, signature, signing_key);
diff --git a/gpg-interface.h b/gpg-interface.h
index b30cbdcd3da..ce2db6f3780 100644
--- a/gpg-interface.h
+++ b/gpg-interface.h
@@ -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".
+ */
+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);
diff --git a/pretty.c b/pretty.c
index ee6114e3f0a..5ee03d6fe09 100644
--- a/pretty.c
+++ b/pretty.c
@@ -1348,6 +1348,7 @@ static size_t format_commit_one(struct strbuf *sb, /* in UTF-8 */
const char *msg = c->message;
struct commit_list *p;
const char *arg, *eol;
+ char *sig_str;
size_t res;
char **slot;
@@ -1575,23 +1576,10 @@ 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;
- }
+ sig_str = gpg_trust_level_to_str(c->signature_check.trust_level);
+ if (sig_str)
+ strbuf_addstr(sb, sig_str);
+ free(sig_str);
break;
default:
return 0;
base-commit: 30cc8d0f147546d4dd77bf497f4dec51e7265bd8
--
gitgitgadget
next prev parent reply other threads:[~2022-07-08 11:24 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-07 13:57 [PATCH] gpg-interface: add function for converting trust level to string Jaydeep Das via GitGitGadget
2022-07-07 18:18 ` Junio C Hamano
2022-07-08 11:24 ` Jaydeep Das via GitGitGadget [this message]
2022-07-09 0:58 ` [PATCH v2] " Eric Sunshine
2022-07-09 3:51 ` jaydeepjd.8914
2022-07-09 20:52 ` Junio C Hamano
2022-07-10 5:44 ` Eric Sunshine
2022-07-10 5:48 ` Junio C Hamano
2022-07-10 6:21 ` Eric Sunshine
2022-07-11 3:51 ` Jaydeep Das
2022-07-09 4:43 ` [PATCH v3] " Jaydeep Das via GitGitGadget
2022-07-11 5:00 ` [PATCH v4] " Jaydeep Das via GitGitGadget
2022-07-11 5:12 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pull.1281.v2.git.1657279447515.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=git@vger.kernel.org \
--cc=jaydeepjd.8914@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.