[pacman-dev] [PATCH 2/3] Move hex_representation() to src/common

Emil Velikov emil.l.velikov at gmail.com
Wed Dec 23 22:43:57 UTC 2020


We'll reuse the function in pacman with a later commit.

Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 lib/libalpm/util.c       | 24 ------------------------
 src/common/util-common.c | 26 ++++++++++++++++++++++++++
 src/common/util-common.h |  1 +
 3 files changed, 27 insertions(+), 24 deletions(-)

diff --git a/lib/libalpm/util.c b/lib/libalpm/util.c
index b70a8192..9ae08745 100644
--- a/lib/libalpm/util.c
+++ b/lib/libalpm/util.c
@@ -1014,30 +1014,6 @@ static int sha256_file(const char *path, unsigned char output[32])
 }
 #endif /* HAVE_LIBSSL || HAVE_LIBNETTLE */
 
-/** Create a string representing bytes in hexadecimal.
- * @param bytes the bytes to represent in hexadecimal
- * @param size number of bytes to consider
- * @return a NULL terminated string with the hexadecimal representation of
- * bytes or NULL on error. This string must be freed.
- */
-static char *hex_representation(const unsigned char *bytes, size_t size)
-{
-	static const char *hex_digits = "0123456789abcdef";
-	char *str;
-	size_t i;
-
-	MALLOC(str, 2 * size + 1, return NULL);
-
-	for(i = 0; i < size; i++) {
-		str[2 * i] = hex_digits[bytes[i] >> 4];
-		str[2 * i + 1] = hex_digits[bytes[i] & 0x0f];
-	}
-
-	str[2 * size] = '\0';
-
-	return str;
-}
-
 char SYMEXPORT *alpm_compute_md5sum(const char *filename)
 {
 	unsigned char output[16];
diff --git a/src/common/util-common.c b/src/common/util-common.c
index 7d43ac0d..fc892c11 100644
--- a/src/common/util-common.c
+++ b/src/common/util-common.c
@@ -25,6 +25,32 @@
 #include "util-common.h"
 
 
+/** Create a string representing bytes in hexadecimal.
+ * @param bytes the bytes to represent in hexadecimal
+ * @param size number of bytes to consider
+ * @return a NULL terminated string with the hexadecimal representation of
+ * bytes or NULL on error. This string must be freed.
+ */
+char *hex_representation(const unsigned char *bytes, size_t size)
+{
+	static const char *hex_digits = "0123456789abcdef";
+	char *str = malloc(2 * size + 1);
+	size_t i;
+
+	if(!str) {
+		return NULL;
+	}
+
+	for(i = 0; i < size; i++) {
+		str[2 * i] = hex_digits[bytes[i] >> 4];
+		str[2 * i + 1] = hex_digits[bytes[i] & 0x0f];
+	}
+
+	str[2 * size] = '\0';
+
+	return str;
+}
+
 /** Parse the basename of a program from a path.
 * @param path path to parse basename from
 *
diff --git a/src/common/util-common.h b/src/common/util-common.h
index 483d5da4..d9b6b4b7 100644
--- a/src/common/util-common.h
+++ b/src/common/util-common.h
@@ -23,6 +23,7 @@
 #include <stdio.h>
 #include <sys/stat.h> /* struct stat */
 
+char *hex_representation(const unsigned char *bytes, size_t size);
 const char *mbasename(const char *path);
 char *mdirname(const char *path);
 
-- 
2.29.2


More information about the pacman-dev mailing list