diff --git a/mbed_lstools/windows.py b/mbed_lstools/windows.py index 0ddd14b..62b4e4b 100644 --- a/mbed_lstools/windows.py +++ b/mbed_lstools/windows.py @@ -120,8 +120,11 @@ def _drive_letters(self): logger.debug('output: %s' % stdout) if not retval: - drive_list = re.match('\s*Drives: (.*)', stdout.decode('utf-8')).group(1) - return drive_list.strip().replace('\\', '').split(' ') + split_index = stdout.find(b':') + 1 + drive_list = stdout[split_index:] + drive_list = drive_list.strip().replace(b'\\', b'').split(b' ') + drive_list = [d.decode('utf-8') for d in drive_list] + return drive_list return [] diff --git a/test/os_win7.py b/test/os_win7.py index 0c9dfe5..e57ba5c 100644 --- a/test/os_win7.py +++ b/test/os_win7.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# coding: utf-8 """ mbed SDK Copyright (c) 2011-2015 ARM Limited @@ -154,6 +155,12 @@ def test_one_nucleo_dev(self): self.assertNotIn(expected_info, devices) self.assertNoRegMut() + # Test multilanguage support + _cliproc.return_value = (u'\nドライブ: C:\ F:\ Z:\ \n'.encode('shift_jis'), None, 0) + devices = self.lstool.find_candidates() + self.assertNotIn(expected_info, devices) + self.assertNoRegMut() + if __name__ == '__main__': unittest.main()