-
Notifications
You must be signed in to change notification settings - Fork 65
Description
I have observed that patch.py adds an extra newline at the end of the patched file even though the unified patch doesn't alter the line at all.
I know it is good behavior on Linux to have a newline at the end of the file. Some C/C++ coding standards make this even mandatory. But with PHP and some other web technologies, there are strong reasons to NOT have a newline at the end of the file, as it may result in undesired additional newline output to the client, possibly breaking everything.
Small example for illustration, including [LF] as newline ('\n') and [EOF] as the end of the file.
original file (old/test.php):
<?php[LF]
[LF]
echo "<html><title>asdf</title><body>asdf</body></html>";[LF]
[LF]
?>[EOF]
with patch file (without [LF] and [EOF], generated via diff -Naur old/test.php new/test.php > test.php.patch
):
--- old/test.php 2017-03-29 11:19:36.103349100 +0200
+++ new/test.php 2017-03-29 11:20:16.270349100 +0200
@@ -1,5 +1,5 @@
<?php
-echo "<html><title>asdf</title><body>asdf</body></html>";
+echo "<html><title>A real title</title><body>A real body</body></html>";
?>
\ No newline at end of file
becomes:
<?php[LF]
[LF]
echo "<html><title>A real title</title><body>A real body</body></html>";[LF]
[LF]
?>[LF][EOF]
but should be (new/test.php):
<?php[LF]
[LF]
echo "<html><title>A real title</title><body>A real body</body></html>";[LF]
[LF]
?>[EOF]