[PATCH 2 of 5] win32: new function executable_path

Adrian Buehlmann adrian at cadifra.com
Tue Feb 8 10:52:28 CST 2011


# HG changeset patch
# User Adrian Buehlmann <adrian at cadifra.com>
# Date 1297121632 -3600
# Node ID 42f36d75a667156cdea745b8d6a605fd355abe8a
# Parent  3ba4920422e9abcdc8b8634c5c12c68051286a8c
win32: new function executable_path

diff --git a/mercurial/win32.py b/mercurial/win32.py
--- a/mercurial/win32.py
+++ b/mercurial/win32.py
@@ -213,15 +213,20 @@ def lookup_reg(key, valname=None, scope=
             if kh.value:
                 adv.RegCloseKey(kh.value)
 
+def executable_path():
+    '''return full path of hg.exe or None on error'''
+    size = 600
+    buf = ctypes.create_string_buffer(size + 1)
+    len = _kernel32.GetModuleFileNameA(None, ctypes.byref(buf), size)
+    if len:
+        return buf.value
+
 def system_rcpath_win32():
     '''return default os-specific hgrc search path'''
     rcpath = []
-    size = 600
-    buf = ctypes.create_string_buffer(size + 1)
-    len = _kernel32.GetModuleFileNameA(None, ctypes.byref(buf), size)
-    if not len:
+    filename = executable_path()
+    if not filename:
         return rcpath
-    filename = buf.value
     # Use mercurial.ini found in directory with hg.exe
     progrc = os.path.join(os.path.dirname(filename), 'mercurial.ini')
     if os.path.isfile(progrc):


More information about the Mercurial-devel mailing list