[PATCH] [RESEND] Handle patches with misformatted empty lines
Hollis Blanchard
hollisb at us.ibm.com
Thu Nov 1 17:16:25 CDT 2007
# HG changeset patch
# User Hollis Blanchard <hollisb at us.ibm.com>
# Date 1193955350 18000
# Node ID 2f73af76383b5d00af1251d6ec12336385d072f8
# Parent 4205f626dc055151084f3d0bae315d64f5095edf
[RESEND] Handle patches with misformatted empty lines
Insert a space on empty lines which are missing a control character.
Signed-off-by: Hollis Blanchard <hollisb at 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.
diff --git a/mercurial/diffhelpers.c b/mercurial/diffhelpers.c
--- a/mercurial/diffhelpers.c
+++ b/mercurial/diffhelpers.c
@@ -83,6 +83,12 @@ addlines(PyObject *self, PyObject *args)
_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);
More information about the Mercurial-devel
mailing list