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.
--- 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);