зеркало из https://github.com/microsoft/git.git
strbuf: add strbuf_addbuf_percentquote
This is handy for creating strings which will be fed to printf() or strbuf_expand(). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
0a0416a34a
Коммит
361df5df77
|
@ -218,6 +218,13 @@ which can be used by the programmer of the callback as she sees fit.
|
|||
placeholder and replacement string. The array needs to be
|
||||
terminated by an entry with placeholder set to NULL.
|
||||
|
||||
`strbuf_addbuf_percentquote`::
|
||||
|
||||
Append the contents of one strbuf to another, quoting any
|
||||
percent signs ("%") into double-percents ("%%") in the
|
||||
destination. This is useful for literal data to be fed to either
|
||||
strbuf_expand or to the *printf family of functions.
|
||||
|
||||
`strbuf_addf`::
|
||||
|
||||
Add a formatted string to the buffer.
|
||||
|
|
11
strbuf.c
11
strbuf.c
|
@ -257,6 +257,17 @@ size_t strbuf_expand_dict_cb(struct strbuf *sb, const char *placeholder,
|
|||
return 0;
|
||||
}
|
||||
|
||||
void strbuf_addbuf_percentquote(struct strbuf *dst, const struct strbuf *src)
|
||||
{
|
||||
int i, len = src->len;
|
||||
|
||||
for (i = 0; i < len; i++) {
|
||||
if (src->buf[i] == '%')
|
||||
strbuf_addch(dst, '%');
|
||||
strbuf_addch(dst, src->buf[i]);
|
||||
}
|
||||
}
|
||||
|
||||
size_t strbuf_fread(struct strbuf *sb, size_t size, FILE *f)
|
||||
{
|
||||
size_t res;
|
||||
|
|
1
strbuf.h
1
strbuf.h
|
@ -116,6 +116,7 @@ struct strbuf_expand_dict_entry {
|
|||
const char *value;
|
||||
};
|
||||
extern size_t strbuf_expand_dict_cb(struct strbuf *sb, const char *placeholder, void *context);
|
||||
extern void strbuf_addbuf_percentquote(struct strbuf *dst, const struct strbuf *src);
|
||||
|
||||
__attribute__((format (printf,2,3)))
|
||||
extern void strbuf_addf(struct strbuf *sb, const char *fmt, ...);
|
||||
|
|
Загрузка…
Ссылка в новой задаче