From 97cae90435c5d2187aab5acbffc3444c7c074a20 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 18 Jan 2016 10:54:01 +0530 Subject: [PATCH] ... --- src/calibre/devices/winusb.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/calibre/devices/winusb.py b/src/calibre/devices/winusb.py index 05488f9bc0..ed81863bcd 100644 --- a/src/calibre/devices/winusb.py +++ b/src/calibre/devices/winusb.py @@ -299,6 +299,15 @@ CM_Get_Device_Interface_List = cwrap('CM_Get_Device_Interface_ListW', CONFIGRET, # }}} # Utility functions {{{ + +_devid_pat = None +def devid_pat(): + global _devid_pat + if _devid_pat is None: + _devid_pat = re.compile(r'VID_([a-f0-9]{4})&PID_([a-f0-9]{4})&REV_([a-f0-9]{4})', re.I) + return _devid_pat + + class DeviceSet(object): def __init__(self, guid=GUID_DEVINTERFACE_VOLUME, enumerator=None, flags=DIGCF_PRESENT | DIGCF_DEVICEINTERFACE): @@ -413,7 +422,7 @@ def get_device_id(devinst, buf=None): buf = create_unicode_buffer(devid_size.value) continue if ret != CR_CODES['CR_SUCCESS']: - raise WindowsError((result, 'The cfgmgr32 function failed with err: %s' % CR_CODE_NAMES.get(result, result))) + raise WindowsError((ret, 'The cfgmgr32 function failed with err: %s' % CR_CODE_NAMES.get(ret, ret))) break return wstring_at(buf), buf @@ -594,13 +603,6 @@ def get_drive_letters_for_device(vendor_id, product_id, bcd=None, storage_number ans['drive_letters'].sort(key=sort_map.get) return ans -_devid_pat = None -def devid_pat(): - global _devid_pat - if _devid_pat is None: - _devid_pat = re.compile(r'VID_([a-f0-9]{4})&PID_([a-f0-9]{4})&REV_([a-f0-9]{4})', re.I) - return _devid_pat - def get_storage_number_map(drive_types=(DRIVE_REMOVABLE, DRIVE_FIXED), debug=False): mask = GetLogicalDrives() type_map = {letter:GetDriveType(letter + ':' + os.sep) for i, letter in enumerate(string.ascii_uppercase) if mask & (1 << i)}