changeset 5483:ec2cc1dadbf7

Handle patches with misformatted empty lines Insert a space on empty lines which are missing a control character. Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com> --- I frequently receive emailed patches with empty lines represented as "\n\n", where Mercurial expects them to be "\n \n". patch(1) applies these patches without complaint, but qpush fails all hunks.
author Hollis Blanchard <hollisb@us.ibm.com>
date Thu, 01 Nov 2007 17:15:50 -0500
parents e5eedd74e70f
children 07bdb5e5d08c
files mercurial/diffhelpers.c
diffstat 1 files changed, 6 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/diffhelpers.c	Thu Nov 01 12:17:59 2007 -0700
+++ b/mercurial/diffhelpers.c	Thu Nov 01 17:15:50 2007 -0500
@@ -83,6 +83,12 @@
 				_fix_newline(hunk, a, b);
 				continue;
 			}
+			if (c == '\n') {
+				/* Some patches may be missing the control char
+				 * on empty lines. Supply a leading space. */
+				Py_DECREF(x);
+				x = PyString_FromString(" \n");
+			}
 			PyList_Append(hunk, x);
 			if (c == '+') {
 				l = PyString_FromString(s + 1);