]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
basic: Add strgrowpad0()
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 23 Sep 2022 10:40:13 +0000 (12:40 +0200)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 23 Sep 2022 12:10:07 +0000 (14:10 +0200)
src/basic/string-util.c
src/basic/string-util.h

index 128aea99c02ae6da19a40774c786a280f9b50bae..17d35fe1a4579cd9e098dcab537a4a565af4844b 100644 (file)
@@ -521,6 +521,19 @@ char* strshorten(char *s, size_t l) {
         return s;
 }
 
+int strgrowpad0(char **s, size_t l) {
+        assert(s);
+
+        char *q = realloc(*s, l);
+        if (!q)
+                return -ENOMEM;
+        *s = q;
+
+        size_t sz = strlen(*s);
+        memzero(*s + sz, l - sz);
+        return 0;
+}
+
 char *strreplace(const char *text, const char *old_string, const char *new_string) {
         size_t l, old_len, new_len;
         char *t, *ret = NULL;
index 1dd46f7f2032c80548cbcf2289b519735a0543a2..0703c848f0afcd3bd4b28a598c89c91399bde5ed 100644 (file)
@@ -152,6 +152,8 @@ char *cellescape(char *buf, size_t len, const char *s);
 
 char* strshorten(char *s, size_t l);
 
+int strgrowpad0(char **s, size_t l);
+
 char *strreplace(const char *text, const char *old_string, const char *new_string);
 
 char *strip_tab_ansi(char **ibuf, size_t *_isz, size_t highlight[2]);