Skip to content

Commit

Permalink
utf8.c: remove print_spaces()
Browse files Browse the repository at this point in the history
The previous patch made sure that strbuf_add_wrapped_text() (and thus
strbuf_add_indented_text(), too) always get a strbuf.  Make use of
this fact by adding strbuf_addchars(), a small helper that adds a
char the specified number of times to a strbuf, and use it to replace
print_spaces().

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
René Scharfe authored and Junio C Hamano committed Feb 20, 2010
1 parent bb96a2c commit 3c0ff44
Showing 1 changed file with 6 additions and 9 deletions.
15 changes: 6 additions & 9 deletions utf8.c
Original file line number Diff line number Diff line change
Expand Up @@ -288,14 +288,11 @@ static inline void strbuf_write(struct strbuf *sb, const char *buf, int len)
fwrite(buf, len, 1, stdout);
}

static void print_spaces(struct strbuf *buf, int count)
static void strbuf_addchars(struct strbuf *sb, int c, size_t n)
{
static const char s[] = " ";
while (count >= sizeof(s)) {
strbuf_write(buf, s, sizeof(s) - 1);
count -= sizeof(s) - 1;
}
strbuf_write(buf, s, count);
strbuf_grow(sb, n);
memset(sb->buf + sb->len, c, n);
strbuf_setlen(sb, sb->len + n);
}

static void strbuf_add_indented_text(struct strbuf *buf, const char *text,
Expand All @@ -307,7 +304,7 @@ static void strbuf_add_indented_text(struct strbuf *buf, const char *text,
const char *eol = strchrnul(text, '\n');
if (*eol == '\n')
eol++;
print_spaces(buf, indent);
strbuf_addchars(buf, ' ', indent);
strbuf_write(buf, text, eol - text);
text = eol;
indent = indent2;
Expand Down Expand Up @@ -366,7 +363,7 @@ int strbuf_add_wrapped_text(struct strbuf *buf,
if (space)
start = space;
else
print_spaces(buf, indent);
strbuf_addchars(buf, ' ', indent);
strbuf_write(buf, start, text - start);
if (!c)
return w;
Expand Down

0 comments on commit 3c0ff44

Please sign in to comment.