git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2 1/2] pkt-line: add packet_writel() and packet_read_line_gently()

From
Torsten Bögershausen <tboegi@web.de>
Date
Mar 25, 2017, 05:47 UTC
Message-ID
<7a2c73c8-bb09-12ec-dd8d-99c5363f9bb4@web.de>
In-Reply-To
<20170324152726.14632-2-benpeart@microsoft.com>
On 2017-03-24 16:27, Ben Peart wrote:
Show 19 quoted lines
> Add packet_writel() which writes multiple lines in a single call and
> then calls packet_flush_gently(). Add packet_read_line_gently() to
> enable reading a line without dying on EOF.
> 
> Signed-off-by: Ben Peart <benpeart@microsoft.com>
> ---
>  pkt-line.c | 31 +++++++++++++++++++++++++++++++
>  pkt-line.h | 11 +++++++++++
>  2 files changed, 42 insertions(+)
> 
> diff --git a/pkt-line.c b/pkt-line.c
> index d4b6bfe076..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, ...)

The name packet_writel is hard to distinguish from packet_write. Would packet_write_lines make more sense ?

Show 18 quoted lines
> +{
> +	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);
> +}
> +
I don't think that this va_start() is needed, even if it works.
int packet_write_line(int fd, const char *lines[])
|
	const char *line = *lines;
	int err;
	while (line) {
		if (strlen(line) > LARGE_PACKET_DATA_MAX)
			return -1;
		err = packet_write_fmt_gently(fd, "%s\n", line);
		if (err)
			return err;
		lines++;
		line = *lines;
	}
	return packet_flush_gently(fd);
]
Previous: Ben PeartNext: Ben Peart
Message 11 of 15 in “Refactor the filter process code into a reusable module”
  1. 0/2 Refactor the filter process code into a reusable moduleBen Peart, Mar 24, 2017
  2. 2/2 sub-process: refactor the filter process code into a reusable moduleBen Peart, Mar 24, 2017
  3. Jonathan TanMar 27, 2017
  4. Ben PeartMar 27, 2017
  5. 1/4 t7800: remove whitespace before redirectBen Peart, Mar 24, 2017
  6. Ben PeartMar 24, 2017
  7. 2/4 t7800: cleanup cruft left behind by testsBen Peart, Mar 24, 2017
  8. 3/4 difftool: handle modified symlinks in dir-diff modeBen Peart, Mar 24, 2017
  9. 4/4 Git 2.12.1Ben Peart, Mar 24, 2017
  10. 1/2 pkt-line: add packet_writel() and packet_read_line_gently()Ben Peart, Mar 24, 2017
  11. Torsten BögershausenMar 25, 2017
  12. Ben PeartMar 27, 2017
  13. Torsten BögershausenMar 30, 2017
  14. Ben PeartMar 30, 2017
  15. Torsten BögershausenMar 30, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.