threads / patch / 52403

patchpatch-id: use oid_to_hex() to print multiple object IDs

Subject: [PATCH] patch-id: use oid_to_hex() to print multiple object IDs

## tl;dr

2 messages between Dec 7, 2019 and Dec 9, 2019. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

René Scharfe· Dec 7, 2019, 19:16 UTC · lore

flush_current_id() prints the hexadecimal representation of two object IDs. When the code was added in f97672225b (Add "git-patch-id" program to generate patch ID's., 2005-06-23), sha1_to_hex() had only a single internal static buffer, so the result of one invocation had to be stored in a local buffer.

Since dcb3450fd8 (sha1_to_hex() usage cleanup, 2006-05-03) it rotates through four buffers, which allows to print up to four object IDs at the same time. 1a876a69af6 (patch-id: convert to use struct object_id, 2015-03-13) replaced sha1_to_hex() with oid_to_hex(), which has the same feature. Use it to simplify the code.

Signed-off-by: René Scharfe <l.s.r@web.de>
---
 builtin/patch-id.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)
Show changes to builtin/patch-id.c +2 −8
diff --git a/builtin/patch-id.c b/builtin/patch-id.c
index 3059e525b8..822ffff51f 100644
--- a/builtin/patch-id.c
+++ b/builtin/patch-id.c
@@ -5,13 +5,8 @@

 static void flush_current_id(int patchlen, struct object_id *id, struct object_id *result)
 {
-	char name[GIT_MAX_HEXSZ + 1];
-
-	if (!patchlen)
-		return;
-
-	memcpy(name, oid_to_hex(id), the_hash_algo->hexsz + 1);
-	printf("%s %s\n", oid_to_hex(result), name);
+	if (patchlen)
+		printf("%s %s\n", oid_to_hex(result), oid_to_hex(id));
 }

 static int remove_space(char *line)
--
2.24.0
brian m. carlson· Dec 9, 2019, 02:06 UTC · re: René Scharfe · lore

Re: [PATCH] patch-id: use oid_to_hex() to print multiple object IDs

On 2019-12-07 at 19:16:51, René Scharfe wrote:
Show 20 quoted lines
> diff --git a/builtin/patch-id.c b/builtin/patch-id.c
> index 3059e525b8..822ffff51f 100644
> --- a/builtin/patch-id.c
> +++ b/builtin/patch-id.c
> @@ -5,13 +5,8 @@
> 
>  static void flush_current_id(int patchlen, struct object_id *id, struct object_id *result)
>  {
> -	char name[GIT_MAX_HEXSZ + 1];
> -
> -	if (!patchlen)
> -		return;
> -
> -	memcpy(name, oid_to_hex(id), the_hash_algo->hexsz + 1);
> -	printf("%s %s\n", oid_to_hex(result), name);
> +	if (patchlen)
> +		printf("%s %s\n", oid_to_hex(result), oid_to_hex(id));
>  }
> 
>  static int remove_space(char *line)
This seems like a nice cleanup to me.  Thanks for sending the patch.
-- 
brian m. carlson: Houston, Texas, US
OpenPGP: https://keybase.io/bk2204

← back to recent threads