The path of font name (a file name or a path), or '' if not found.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | name |
a file name or a path |
function find_font(name) result(path) character(len=*), intent(in) :: name !! a file name or a path character(len=:), allocatable :: path character(len=4096) :: env character(len=:), allocatable :: dirs character(len=*), parameter :: system_dirs = & '/System/Library/Fonts/Supplemental;/System/Library/Fonts;/Library/Fonts;' // & ! macOS '/usr/share/fonts/truetype/dejavu;/usr/share/fonts/TTF;/usr/share/fonts/dejavu;' // & ! Linux '/usr/share/fonts/truetype;/usr/share/fonts;/usr/local/share/fonts;' // & 'C:/Windows/Fonts' ! Windows integer :: status logical :: exists path = '' if (len_trim(name) == 0) return if (index(name, '/') > 0 .or. index(name, '\') > 0) then inquire(file=name, exist=exists) if (exists) path = name return end if dirs = '' call get_environment_variable('VKFRAMES_FONT_PATH', env, status=status) if (status == 0) dirs = trim(env)//';' call get_environment_variable('CONDA_PREFIX', env, status=status) if (status == 0) dirs = dirs//trim(env)//'/fonts;'//trim(env)//'/Library/fonts;' dirs = dirs//system_dirs path = find_in_dirs(name, dirs) end function find_font