> On 07 Apr 2017, at 14:03, Ben Peart <peart...@gmail.com> wrote:
> 
> Add packet_writel() which writes multiple lines in a single call and
> then calls packet_flush_gently(). Update convert.c to use the new
> packet_writel() function from pkt-line.
> 
> Signed-off-by: Ben Peart <benpe...@microsoft.com>
> ---
> convert.c  | 23 ++---------------------
> pkt-line.c | 19 +++++++++++++++++++
> pkt-line.h |  1 +
> 3 files changed, 22 insertions(+), 21 deletions(-)
> 
> diff --git a/convert.c b/convert.c
> index 8d652bf27c..793c29ebfd 100644
> --- a/convert.c
> +++ b/convert.c
> @@ -521,25 +521,6 @@ static struct cmd2process 
> *find_multi_file_filter_entry(struct hashmap *hashmap,
>       return hashmap_get(hashmap, &key, NULL);
> }
> 
> -static int packet_write_list(int fd, const char *line, ...)
> -{
> -     va_list args;
> -     int err;
> -     va_start(args, line);
> -     for (;;) {
> -             if (!line)
> -                     break;
> -             if (strlen(line) > LARGE_PACKET_DATA_MAX)
> -                     return -1;
> -             err = packet_write_fmt_gently(fd, "%s\n", line);
> -             if (err)
> -                     return err;
> -             line = va_arg(args, const char*);
> -     }
> -     va_end(args);
> -     return packet_flush_gently(fd);
> -}
> -
> static void read_multi_file_filter_status(int fd, struct strbuf *status)
> {
>       struct strbuf **pair;
> @@ -616,7 +597,7 @@ static struct cmd2process *start_multi_file_filter(struct 
> hashmap *hashmap, cons
> 
>       sigchain_push(SIGPIPE, SIG_IGN);
> 
> -     err = packet_write_list(process->in, "git-filter-client", "version=2", 
> NULL);
> +     err = packet_writel(process->in, "git-filter-client", "version=2", 
> NULL);
>       if (err)
>               goto done;
> 
> @@ -632,7 +613,7 @@ static struct cmd2process *start_multi_file_filter(struct 
> hashmap *hashmap, cons
>       if (err)
>               goto done;
> 
> -     err = packet_write_list(process->in, "capability=clean", 
> "capability=smudge", NULL);
> +     err = packet_writel(process->in, "capability=clean", 
> "capability=smudge", NULL);
> 
>       for (;;) {
>               cap_buf = packet_read_line(process->out, NULL);
> diff --git a/pkt-line.c b/pkt-line.c
> index 58842544b4..2788aa1af6 100644
> --- a/pkt-line.c
> +++ b/pkt-line.c
> @@ -171,6 +171,25 @@ int packet_write_fmt_gently(int fd, const char *fmt, ...)
>       return status;
> }
> 
> +int packet_writel(int fd, const char *line, ...)
> +{
> +     va_list args;
> +     int err;
> +     va_start(args, line);
> +     for (;;) {
> +             if (!line)
> +                     break;
> +             if (strlen(line) > LARGE_PACKET_DATA_MAX)
> +                     return -1;
> +             err = packet_write_fmt_gently(fd, "%s\n", line);
> +             if (err)
> +                     return err;
> +             line = va_arg(args, const char*);
> +     }
> +     va_end(args);
> +     return packet_flush_gently(fd);
> +}
> +
> static int packet_write_gently(const int fd_out, const char *buf, size_t size)
> {
>       static char packet_write_buffer[LARGE_PACKET_MAX];
> diff --git a/pkt-line.h b/pkt-line.h
> index 12b18991f6..cb3eda9695 100644
> --- a/pkt-line.h
> +++ b/pkt-line.h
> @@ -25,6 +25,7 @@ void packet_buf_flush(struct strbuf *buf);
> void packet_buf_write(struct strbuf *buf, const char *fmt, ...) 
> __attribute__((format (printf, 2, 3)));
> int packet_flush_gently(int fd);
> int packet_write_fmt_gently(int fd, const char *fmt, ...) 
> __attribute__((format (printf, 2, 3)));
> +int packet_writel(int fd, const char *line, ...);
> int write_packetized_from_fd(int fd_in, int fd_out);
> int write_packetized_from_buf(const char *src_in, size_t len, int fd_out);
> 
> -- 
> 2.12.0.windows.1.31.g1548525701.dirty

Looks good to me.

Thanks,
Lars

Reply via email to