]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
boot: Add strsize8/16
authorJan Janssen <medhefgo@web.de>
Tue, 24 May 2022 08:57:00 +0000 (10:57 +0200)
committerJan Janssen <medhefgo@web.de>
Tue, 31 May 2022 13:14:54 +0000 (15:14 +0200)
src/boot/efi/efi-string.h
src/boot/efi/test-efi-string.c

index c4973a0d74dd8f1eac1e998732cc434a4a58e4d5..9307810a5b9304aaf372874490bbb5d998b33755 100644 (file)
@@ -11,6 +11,14 @@ size_t strnlen16(const char16_t *s, size_t n);
 size_t strlen8(const char *s);
 size_t strlen16(const char16_t *s);
 
+static inline size_t strsize8(const char *s) {
+        return s ? (strlen8(s) + 1) * sizeof(*s) : 0;
+}
+
+static inline size_t strsize16(const char16_t *s) {
+        return s ? (strlen16(s) + 1) * sizeof(*s) : 0;
+}
+
 void strtolower8(char *s);
 void strtolower16(char16_t *s);
 
index 2ff8bef3f629c889112fa87404756c3188592aa9..bc033d6fc246fb7eee77f812bf66adbb3ba4309c 100644 (file)
@@ -41,6 +41,24 @@ TEST(strnlen16) {
         assert_se(strnlen16(u"12\0004", 5) == 2);
 }
 
+TEST(strsize8) {
+        assert_se(strsize8(NULL) == 0);
+        assert_se(strsize8("") == 1);
+        assert_se(strsize8("1") == 2);
+        assert_se(strsize8("11") == 3);
+        assert_se(strsize8("123456789") == 10);
+        assert_se(strsize8("12\0004") == 3);
+}
+
+TEST(strsize16) {
+        assert_se(strsize16(NULL) == 0);
+        assert_se(strsize16(u"") == 2);
+        assert_se(strsize16(u"1") == 4);
+        assert_se(strsize16(u"11") == 6);
+        assert_se(strsize16(u"123456789") == 20);
+        assert_se(strsize16(u"12\0004") == 6);
+}
+
 TEST(strtolower8) {
         char s[] = "\0001234abcDEF!\0zZ";