Mercurial > public > mercurial-scm > hg
comparison mercurial/win32.py @ 13377:4ac565a30e84
win32: move system_rcpath_win32() to windows.py
no code change in system_rcpath_win32
This breaks the dependency from the win32 module on osutil
author | Adrian Buehlmann <adrian@cadifra.com> |
---|---|
date | Mon, 14 Feb 2011 11:12:35 +0100 |
parents | 60b5c6c3fd12 |
children | 67743d5f49b6 |
comparison
equal
deleted
inserted
replaced
13376:60b5c6c3fd12 | 13377:4ac565a30e84 |
---|---|
3 # Copyright 2005-2009 Matt Mackall <mpm@selenic.com> and others | 3 # Copyright 2005-2009 Matt Mackall <mpm@selenic.com> and others |
4 # | 4 # |
5 # This software may be used and distributed according to the terms of the | 5 # This software may be used and distributed according to the terms of the |
6 # GNU General Public License version 2 or any later version. | 6 # GNU General Public License version 2 or any later version. |
7 | 7 |
8 import osutil, encoding | 8 import encoding |
9 import ctypes, errno, os, struct, subprocess | 9 import ctypes, errno, os, struct, subprocess |
10 | 10 |
11 _kernel32 = ctypes.windll.kernel32 | 11 _kernel32 = ctypes.windll.kernel32 |
12 | 12 |
13 _BOOL = ctypes.c_long | 13 _BOOL = ctypes.c_long |
220 raise ctypes.WinError() | 220 raise ctypes.WinError() |
221 elif len == size: | 221 elif len == size: |
222 raise ctypes.WinError(_ERROR_INSUFFICIENT_BUFFER) | 222 raise ctypes.WinError(_ERROR_INSUFFICIENT_BUFFER) |
223 return buf.value | 223 return buf.value |
224 | 224 |
225 def system_rcpath_win32(): | |
226 '''return default os-specific hgrc search path''' | |
227 rcpath = [] | |
228 filename = executable_path() | |
229 # Use mercurial.ini found in directory with hg.exe | |
230 progrc = os.path.join(os.path.dirname(filename), 'mercurial.ini') | |
231 if os.path.isfile(progrc): | |
232 rcpath.append(progrc) | |
233 return rcpath | |
234 # Use hgrc.d found in directory with hg.exe | |
235 progrcd = os.path.join(os.path.dirname(filename), 'hgrc.d') | |
236 if os.path.isdir(progrcd): | |
237 for f, kind in osutil.listdir(progrcd): | |
238 if f.endswith('.rc'): | |
239 rcpath.append(os.path.join(progrcd, f)) | |
240 return rcpath | |
241 # else look for a system rcpath in the registry | |
242 value = lookup_reg('SOFTWARE\\Mercurial', None, _HKEY_LOCAL_MACHINE) | |
243 if not isinstance(value, str) or not value: | |
244 return rcpath | |
245 value = value.replace('/', os.sep) | |
246 for p in value.split(os.pathsep): | |
247 if p.lower().endswith('mercurial.ini'): | |
248 rcpath.append(p) | |
249 elif os.path.isdir(p): | |
250 for f, kind in osutil.listdir(p): | |
251 if f.endswith('.rc'): | |
252 rcpath.append(os.path.join(p, f)) | |
253 return rcpath | |
254 | |
255 def user_rcpath_win32(): | 225 def user_rcpath_win32(): |
256 '''return os-specific hgrc search path to the user dir''' | 226 '''return os-specific hgrc search path to the user dir''' |
257 userdir = os.path.expanduser('~') | 227 userdir = os.path.expanduser('~') |
258 return [os.path.join(userdir, 'mercurial.ini'), | 228 return [os.path.join(userdir, 'mercurial.ini'), |
259 os.path.join(userdir, '.hgrc')] | 229 os.path.join(userdir, '.hgrc')] |