# HG changeset patch # User Hollis Blanchard # Date 1193955350 18000 # 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 -r e5eedd74e70f -r ec2cc1dadbf7 mercurial/diffhelpers.c --- 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);