convert: move packet_write_line() into pkt-line as packet_writel()
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 <benpeart@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
							parent
							
								
									825b9226bf
								
							
						
					
					
						commit
						c0c70f7ac0
					
				
							
								
								
									
										23
									
								
								convert.c
								
								
								
								
							
							
						
						
									
										23
									
								
								convert.c
								
								
								
								
							|  | @ -521,25 +521,6 @@ static struct cmd2process *find_multi_file_filter_entry(struct hashmap *hashmap, | ||||||
| 	return hashmap_get(hashmap, &key, NULL); | 	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) | static void read_multi_file_filter_status(int fd, struct strbuf *status) | ||||||
| { | { | ||||||
| 	struct strbuf **pair; | 	struct strbuf **pair; | ||||||
|  | @ -616,7 +597,7 @@ static struct cmd2process *start_multi_file_filter(struct hashmap *hashmap, cons | ||||||
|  |  | ||||||
| 	sigchain_push(SIGPIPE, SIG_IGN); | 	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) | 	if (err) | ||||||
| 		goto done; | 		goto done; | ||||||
|  |  | ||||||
|  | @ -632,7 +613,7 @@ static struct cmd2process *start_multi_file_filter(struct hashmap *hashmap, cons | ||||||
| 	if (err) | 	if (err) | ||||||
| 		goto done; | 		goto done; | ||||||
|  |  | ||||||
| 	err = packet_write_list(process->in, "capability=clean", "capability=smudge", NULL); | 	err = packet_writel(process->in, "capability=clean", "capability=smudge", NULL); | ||||||
|  |  | ||||||
| 	for (;;) { | 	for (;;) { | ||||||
| 		cap_buf = packet_read_line(process->out, NULL); | 		cap_buf = packet_read_line(process->out, NULL); | ||||||
|  |  | ||||||
							
								
								
									
										19
									
								
								pkt-line.c
								
								
								
								
							
							
						
						
									
										19
									
								
								pkt-line.c
								
								
								
								
							|  | @ -171,6 +171,25 @@ int packet_write_fmt_gently(int fd, const char *fmt, ...) | ||||||
| 	return status; | 	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 int packet_write_gently(const int fd_out, const char *buf, size_t size) | ||||||
| { | { | ||||||
| 	static char packet_write_buffer[LARGE_PACKET_MAX]; | 	static char packet_write_buffer[LARGE_PACKET_MAX]; | ||||||
|  |  | ||||||
|  | @ -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))); | void packet_buf_write(struct strbuf *buf, const char *fmt, ...) __attribute__((format (printf, 2, 3))); | ||||||
| int packet_flush_gently(int fd); | int packet_flush_gently(int fd); | ||||||
| int packet_write_fmt_gently(int fd, const char *fmt, ...) __attribute__((format (printf, 2, 3))); | 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_fd(int fd_in, int fd_out); | ||||||
| int write_packetized_from_buf(const char *src_in, size_t len, int fd_out); | int write_packetized_from_buf(const char *src_in, size_t len, int fd_out); | ||||||
|  |  | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Ben Peart
						Ben Peart