From 2812017cfb5a427cb5ee06bbe559274e77939f8b Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Fri, 23 Sep 2022 12:40:13 +0200 Subject: [PATCH] basic: Add strgrowpad0() --- src/basic/string-util.c | 13 +++++++++++++ src/basic/string-util.h | 2 ++ 2 files changed, 15 insertions(+) diff --git a/src/basic/string-util.c b/src/basic/string-util.c index 128aea99c0..17d35fe1a4 100644 --- a/src/basic/string-util.c +++ b/src/basic/string-util.c @@ -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; diff --git a/src/basic/string-util.h b/src/basic/string-util.h index 1dd46f7f20..0703c848f0 100644 --- a/src/basic/string-util.h +++ b/src/basic/string-util.h @@ -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]);