When editing a patch header with certain editors, it is possible that no trailing newline character is present on the last line. In such case, the patch would be corrupted. Prevent that by ensuring that a newline character is always present.
This fixes bug #50841: https://savannah.nongnu.org/bugs/?50841 Signed-off-by: Jean Delvare <[email protected]> --- quilt/header.in | 7 +++++++ test/header.test | 13 +++++++++++++ 2 files changed, 20 insertions(+) --- quilt.orig/quilt/header.in 2017-05-01 14:36:11.587024039 +0200 +++ quilt/quilt/header.in 2017-05-01 14:36:18.776100191 +0200 @@ -154,6 +154,13 @@ else LANG=$ORIGINAL_LANG $EDITOR "$tmp" || exit 1 fi + # Ensure there is a trailing newline before we append the rest + last_char=$(tail -c 1 "$tmp") + if ! [ -z "$last_char" -o "$last_char" = $'\n' -o "$last_char" = $'\r' ] + then + echo "" >> $tmp + fi + maybe_strip_diffstat < $tmp \ | maybe_strip_trailing_whitespace > $tmp2 --- quilt.orig/test/header.test 2017-05-01 14:36:12.265031221 +0200 +++ quilt/test/header.test 2017-05-01 14:36:24.003155560 +0200 @@ -42,3 +42,16 @@ > @@ -1 +1 @@ > -foo > +bar + + $ echo -n "No trailing newline" | quilt header -r + > Replaced header of patch patches/patch + + $ cat patches/patch + > No trailing newline + > Index: b/foo + > =================================================================== + > --- a/foo + > +++ b/foo + > @@ -1 +1 @@ + > -foo + > +bar -- Jean Delvare SUSE L3 Support _______________________________________________ Quilt-dev mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/quilt-dev
