filemerge: introduce a 'regkeyalt' merge tool variable stable
authorSteve Borho <steve@borho.org>
Tue, 08 Mar 2011 13:05:18 -0600
branchstable
changeset 13565 984175605311
parent 13563 391948925b67
child 13566 a87a0fcb412f
filemerge: introduce a 'regkeyalt' merge tool variable This allows us to provide alternate search keys for 64bit operating systems that may have 32bit merge tools installed. Presumably it may find other uses.
doc/hgrc.5.txt
mercurial/filemerge.py
--- a/doc/hgrc.5.txt	Tue Mar 08 10:03:01 2011 -0600
+++ b/doc/hgrc.5.txt	Tue Mar 08 13:05:18 2011 -0600
@@ -556,6 +556,12 @@
   tool. Mercurial will search for this key first under
   ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.
   Default: None
+``regkeyalt``
+  An alternate Windows registry key to try if the first key is not
+  found.  The alternate key uses the same ``regname`` and ``regappend``
+  semantics of the primary key.  The most common use for this key
+  is to search for 32bit applications on 64bit operating systems.
+  Default: None
 ``regname``
   Name of value to read from specified registry key. Defaults to the
   unnamed (default) value.
--- a/mercurial/filemerge.py	Tue Mar 08 10:03:01 2011 -0600
+++ b/mercurial/filemerge.py	Tue Mar 08 13:05:18 2011 -0600
@@ -25,8 +25,10 @@
 def _findtool(ui, tool):
     if tool in _internal:
         return tool
-    k = _toolstr(ui, tool, "regkey")
-    if k:
+    for kn in ("regkey", "regkeyalt"):
+        k = _toolstr(ui, tool, kn)
+        if not k:
+            continue
         p = util.lookup_reg(k, _toolstr(ui, tool, "regname"))
         if p:
             p = util.find_exe(p + _toolstr(ui, tool, "regappend"))