diff options
author | Tavian Barnes <tavianator@tavianator.com> | 2024-09-14 14:05:46 -0400 |
---|---|---|
committer | Tavian Barnes <tavianator@tavianator.com> | 2024-09-14 14:05:46 -0400 |
commit | 9bb28ab3be23aa486cff6ce024a88e7b3e343fa4 (patch) | |
tree | 6b5f62dd6eb2f476c29af19cff75a57042c400f9 /src/dstring.c | |
parent | 170aa3df69a64544ef5fcc24ac22de1aa7303562 (diff) | |
download | bfs-9bb28ab3be23aa486cff6ce024a88e7b3e343fa4.tar.xz |
dstring: New dstrepeat() function
Diffstat (limited to 'src/dstring.c')
-rw-r--r-- | src/dstring.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/dstring.c b/src/dstring.c index 36ed2c7..af499fd 100644 --- a/src/dstring.c +++ b/src/dstring.c @@ -278,3 +278,20 @@ void dstrfree(dchar *dstr) { free(dstrheader(dstr)); } } + +dchar *dstrepeat(const char *str, size_t n) { + size_t len = strlen(str); + dchar *ret = dstralloc(n * len); + if (!ret) { + return NULL; + } + + for (size_t i = 0; i < n; ++i) { + if (dstrxcat(&ret, str, len) < 0) { + dstrfree(ret); + return NULL; + } + } + + return ret; +} |