From patchwork Fri Mar 22 22:46:25 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: patch: match 'diff --git a/' instead of 'diff --git' From: Sean Farley X-Patchwork-Id: 1168 Message-Id: <8e1fe4a88e89f8aff8d7.1363992385@laptop.local> To: mercurial-devel@selenic.com Date: Fri, 22 Mar 2013 17:46:25 -0500 # HG changeset patch # User Sean Farley # Date 1363991226 18000 # Fri Mar 22 17:27:06 2013 -0500 # Node ID 8e1fe4a88e89f8aff8d781b787c2d02053ef6bcc # Parent ac0336471ba766cc3c1234473e75d4478819e50d patch: match 'diff --git a/' instead of 'diff --git' This fixes a traceback when trying to email a patch that happens to have 'diff --git' at the beginning of a line in the description as this patch did: http://markmail.org/message/wxpgowxd7ucxygwe diff --git a/mercurial/patch.py b/mercurial/patch.py --- a/mercurial/patch.py +++ b/mercurial/patch.py @@ -312,11 +312,11 @@ # Filter patch for git information gp = None gitpatches = [] for line in lr: line = line.rstrip(' \r\n') - if line.startswith('diff --git'): + if line.startswith('diff --git a/'): m = gitre.match(line) if m: if gp: gitpatches.append(gp) dst = m.group(2) @@ -1209,11 +1209,11 @@ hunknum += 1 if emitfile: emitfile = False yield 'file', (afile, bfile, h, gp and gp.copy() or None) yield 'hunk', h - elif x.startswith('diff --git'): + elif x.startswith('diff --git a/'): m = gitre.match(x.rstrip(' \r\n')) if not m: continue if gitpatches is None: # scan whole input for git metadata @@ -1811,11 +1811,11 @@ for line in lines: if line.startswith('diff'): addresult() # set numbers to 0 anyway when starting new file adds, removes, isbinary = 0, 0, False - if line.startswith('diff --git'): + if line.startswith('diff --git a/'): filename = gitre.search(line).group(1) elif line.startswith('diff -r'): # format: "diff -r ... -r ... filename" filename = diffre.search(line).group(1) elif line.startswith('+') and not line.startswith('+++ '):