path: root/strbuf.h
diff options
authorRené Scharfe <>2020-02-09 13:44:23 (GMT)
committerJunio C Hamano <>2020-02-10 17:04:45 (GMT)
commita91cc7fad0d48984135abe2fb70c41db61b500c5 (patch)
treed6b5e82a62a48d7ba436bcaecf1c897ce449161d /strbuf.h
parentd0654dc308b0ba76dd8ed7bbb33c8d8f7aacd783 (diff)
strbuf: add and use strbuf_insertstr()
Add a function for inserting a C string into a strbuf. Use it throughout the source to get rid of magic string length constants and explicit strlen() calls. Like strbuf_addstr(), implement it as an inline function to avoid the implicit strlen() calls to cause runtime overhead. Helped-by: Taylor Blau <> Helped-by: Eric Sunshine <> Signed-off-by: René Scharfe <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'strbuf.h')
1 files changed, 12 insertions, 0 deletions
diff --git a/strbuf.h b/strbuf.h
index bfa6656..aae7ac3 100644
--- a/strbuf.h
+++ b/strbuf.h
@@ -245,6 +245,18 @@ void strbuf_addchars(struct strbuf *sb, int c, size_t n);
void strbuf_insert(struct strbuf *sb, size_t pos, const void *, size_t);
+ * Insert a NUL-terminated string to the given position of the buffer.
+ * The remaining contents will be shifted, not overwritten. It's an
+ * inline function to allow the compiler to resolve strlen() calls on
+ * constants at compile time.
+ */
+static inline void strbuf_insertstr(struct strbuf *sb, size_t pos,
+ const char *s)
+ strbuf_insert(sb, pos, s, strlen(s));
* Insert data to the given position of the buffer giving a printf format
* string. The contents will be shifted, not overwritten.