mercurial/patch.py
changeset 4644 50252ea60549
parent 4516 96d8a56d4ef9
child 4659 7a7d4937272b
--- a/mercurial/patch.py
+++ b/mercurial/patch.py
@@ -298,13 +298,14 @@ def patch(patchname, ui, strip=1, cwd=No
 
         args = []
         patcher = ui.config('ui', 'patch')
-        patcher = ((patcher and util.find_exe(patcher)) or
-                   util.find_exe('gpatch') or
-                   util.find_exe('patch'))
+        if not patcher:
+            patcher = util.find_exe('gpatch') or util.find_exe('patch')
+            # Try to be smart only if patch call was not supplied
+            if util.needbinarypatch():
+                args.append('--binary')
+                
         if not patcher:
             raise util.Abort(_('no patch command found in hgrc or PATH'))
-        if util.needbinarypatch():
-            args.append('--binary')
 
         if cwd:
             args.append('-d %s' % util.shellquote(cwd))