From 9b386b6a467984132f14a4a009b2026ca71e682c Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 24 Jul 2020 13:03:52 +0530 Subject: [PATCH] Font scanner: Also scan the new win 10 local font paths Fixes #1888798 [Additional Windows 10 font directory location (v 1809)](https://bugs.launchpad.net/calibre/+bug/1888798) --- src/calibre/utils/fonts/scanner.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/calibre/utils/fonts/scanner.py b/src/calibre/utils/fonts/scanner.py index 862b537f35..a7d6a8f3e4 100644 --- a/src/calibre/utils/fonts/scanner.py +++ b/src/calibre/utils/fonts/scanner.py @@ -103,10 +103,16 @@ def font_dirs(): winutil, err = plugins['winutil'] if err: raise RuntimeError('Failed to load winutil: %s'%err) - try: - return [winutil.special_folder_path(winutil.CSIDL_FONTS)] - except ValueError: - return [r'C:\Windows\Fonts'] + paths = {os.path.normcase(r'C:\Windows\Fonts')} + for which in (winutil.CSIDL_FONTS, winutil.CSIDL_LOCAL_APPDATA, winutil.CSIDL_APPDATA): + try: + path = winutil.special_folder_path(winutil.CSIDL_FONTS) + except ValueError: + continue + if which != winutil.CSIDL_FONTS: + path = os.path.join(path, r'Microsoft\Windows\Fonts') + paths.add(os.path.normcase(path)) + return list(paths) if isosx: return [ '/Library/Fonts',