pkt-line: do not chomp newlines for sideband messages
commit7033d5479b8a7b8e7c33892f23d106c33c938ff4
authorJiang Xin <zhiyou.jx@alibaba-inc.com>
Sun, 17 Dec 2023 14:41:38 +0000 (17 22:41 +0800)
committerJunio C Hamano <gitster@pobox.com>
Mon, 18 Dec 2023 21:24:38 +0000 (18 13:24 -0800)
tree8811ec4e4e82bc73dee4a5af02109a0a5ff21573
parent64220dc5f7450d8eca471fa484965b1dcddc2827
pkt-line: do not chomp newlines for sideband messages

When calling "packet_read_with_status()" to parse pkt-line encoded
packets, we can turn on the flag "PACKET_READ_CHOMP_NEWLINE" to chomp
newline character for each packet for better line matching. But when
receiving data and progress information using sideband, we should turn
off the flag "PACKET_READ_CHOMP_NEWLINE" to prevent mangling newline
characters from data and progress information.

When both the server and the client support "sideband-all" capability,
we have a dilemma that newline characters in negotiation packets should
be removed, but the newline characters in the progress information
should be left intact.

Add new flag "PACKET_READ_USE_SIDEBAND" for "packet_read_with_status()"
to prevent mangling newline characters in sideband messages.

Helped-by: Jonathan Tan <jonathantanmy@google.com>
Helped-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Signed-off-by: Jiang Xin <zhiyou.jx@alibaba-inc.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
pkt-line.c
pkt-line.h
t/t0070-fundamental.sh