psa_constant_names: new function append_integer
Factor repeated code into a new function append_integer.
diff --git a/programs/psa/psa_constant_names.c b/programs/psa/psa_constant_names.c
index d422e14..755bc8c 100644
--- a/programs/psa/psa_constant_names.c
+++ b/programs/psa/psa_constant_names.c
@@ -21,6 +21,16 @@
}
}
+static void append_integer(char **buffer, size_t buffer_size,
+ size_t *required_size,
+ const char *format /*printf format for value*/,
+ unsigned long value)
+{
+ size_t n = snprintf(*buffer, buffer_size - *required_size, format, value);
+ if (n < buffer_size - *required_size) *buffer += n;
+ *required_size += n;
+}
+
/* The code of these function is automatically generated and included below. */
static const char *psa_ecc_curve_name(psa_ecc_curve_t curve);
static const char *psa_hash_algorithm_name(psa_algorithm_t hash_alg);
@@ -37,10 +47,8 @@
append(buffer, buffer_size, required_size,
curve_name, strlen(curve_name));
} else {
- size_t n = snprintf(*buffer, buffer_size - *required_size,
- "0x%04x", (unsigned) curve);
- if (n < buffer_size - *required_size) *buffer += n;
- *required_size += n;
+ append_integer(buffer, buffer_size, required_size,
+ "0x%04x", curve);
}
append(buffer, buffer_size, required_size, ")", 1);
}
@@ -57,10 +65,8 @@
append(buffer, buffer_size, required_size,
hash_name, strlen(hash_name));
} else {
- size_t n = snprintf(*buffer, buffer_size - *required_size,
- "0x%08lx", (unsigned long) hash_alg);
- if (n < buffer_size - *required_size) *buffer += n;
- *required_size += n;
+ append_integer(buffer, buffer_size, required_size,
+ "0x%08lx", hash_alg);
}
append(buffer, buffer_size, required_size, ")", 1);
}
diff --git a/scripts/generate_psa_constants.py b/scripts/generate_psa_constants.py
index 7ab1c0a..0e80f40 100755
--- a/scripts/generate_psa_constants.py
+++ b/scripts/generate_psa_constants.py
@@ -55,8 +55,8 @@
%(algorithm_cases)s
default:
%(algorithm_code)s{
- return snprintf(buffer, buffer_size,
- "0x%%08lx", (unsigned long) alg);
+ append_integer(&buffer, buffer_size, &required_size,
+ "0x%%08lx", (unsigned long) alg);
}
break;
}
@@ -82,8 +82,8 @@
if (required_size != 0) {
append(&buffer, buffer_size, &required_size, " | ", 3);
}
- required_size += snprintf(buffer, buffer_size - required_size,
- "0x%%08x", usage);
+ append_integer(&buffer, buffer_size, &required_size,
+ "0x%%08lx", (unsigned long) usage);
} else {
buffer[0] = 0;
}