diff options
author | Jeff King <peff@peff.net> | 2011-02-23 04:50:19 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-02-23 13:44:36 -0800 |
commit | 98acc837a14c2ab1975b38b93cb028e87e47ad4a (patch) | |
tree | 81d7357236e35497abebc42a95448d70df20a2fb | |
parent | Git 1.7.4 (diff) | |
download | tgif-98acc837a14c2ab1975b38b93cb028e87e47ad4a.tar.xz |
strbuf: add fixed-length version of add_wrapped_text
The function strbuf_add_wrapped_text takes a NUL-terminated
string. This makes it annoying to wrap strings we have as a
pointer and a length.
Refactoring strbuf_add_wrapped_text and all of its
sub-functions to handle fixed-length strings turned out to
be really ugly. So this implementation is lame; it just
strdups the text and operates on the NUL-terminated version.
This should be fine as the strings we are wrapping are
generally pretty short. If it becomes a problem, we can
optimize later.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | utf8.c | 9 | ||||
-rw-r--r-- | utf8.h | 2 |
2 files changed, 11 insertions, 0 deletions
@@ -405,6 +405,15 @@ new_line: } } +int strbuf_add_wrapped_bytes(struct strbuf *buf, const char *data, int len, + int indent, int indent2, int width) +{ + char *tmp = xstrndup(data, len); + int r = strbuf_add_wrapped_text(buf, tmp, indent, indent2, width); + free(tmp); + return r; +} + int is_encoding_utf8(const char *name) { if (!name) @@ -10,6 +10,8 @@ int is_encoding_utf8(const char *name); int strbuf_add_wrapped_text(struct strbuf *buf, const char *text, int indent, int indent2, int width); +int strbuf_add_wrapped_bytes(struct strbuf *buf, const char *data, int len, + int indent, int indent2, int width); #ifndef NO_ICONV char *reencode_string(const char *in, const char *out_encoding, const char *in_encoding); |