# HG changeset patch # User Hollis Blanchard # Date 2007-11-01 22:15:50 # Node ID ec2cc1dadbf790641ce1f3ecded504820209fc56 # Parent e5eedd74e70f7f02621dc8dcff52cb35ce9a08d2 Handle patches with misformatted empty lines Insert a space on empty lines which are missing a control character. Signed-off-by: Hollis Blanchard --- 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);