diff options
author | Philipp Gesang <phg42.2a@gmail.com> | 2014-07-18 23:48:24 +0200 |
---|---|---|
committer | Philipp Gesang <phg42.2a@gmail.com> | 2014-07-18 23:52:08 +0200 |
commit | f2bb496d4df55c80bda955b4b2fdc0cabd332b4f (patch) | |
tree | 08cfa676fe631d448f05170f919b1f320d40413e /src | |
parent | 55663ee9f171539dd39a87b12200654edd3bfded (diff) | |
download | luaotfload-f2bb496d4df55c80bda955b4b2fdc0cabd332b4f.tar.gz |
[parsers] fix missing argument to fontconfig scanner
The reference to ``find_files`` didn’t get passed on to recursive calls
which caused an error if multiple directories are searched.
Reported by Norbert Preining.
Diffstat (limited to 'src')
-rw-r--r-- | src/luaotfload-parsers.lua | 62 |
1 files changed, 45 insertions, 17 deletions
diff --git a/src/luaotfload-parsers.lua b/src/luaotfload-parsers.lua index 3eeb614..e7f9cd2 100644 --- a/src/luaotfload-parsers.lua +++ b/src/luaotfload-parsers.lua @@ -217,20 +217,35 @@ local conf_filter = function (path) end --[[doc-- - read_fonts_conf_indeed() is called with seven arguments; the - latter three are tables that represent the state and are - always returned. + + read_fonts_conf_indeed() -- Scan paths included from fontconfig + configuration files recursively. Called with eight arguments. The first four are + · the path to the file · the expanded $HOME · the expanded $XDG_CONFIG_HOME · the expanded $XDG_DATA_HOME + + determining the path to be checked. Another three arguments are + tables that represent the state of the current job as lists of + strings; these are always returned. Finally a reference to the + find_files function is passed. + --doc]]-- ---- string -> string -> string -> tab -> tab -> (tab * tab * tab) + +--- string -> string -> string -> string +--- -> string list -> string list -> string list +--- -> (string -> fun option -> string list) +--- -> tab * tab * tab local read_fonts_conf_indeed -read_fonts_conf_indeed = function (start, home, xdg_config_home, +read_fonts_conf_indeed = function (start, + home, + xdg_config_home, xdg_data_home, - acc, done, dirs_done, + acc, + done, + dirs_done, find_files) local paths = fonts_conf_scanner(start) @@ -281,16 +296,26 @@ read_fonts_conf_indeed = function (start, home, xdg_config_home, then --- we exclude path with texmf in them, as they should --- be found otherwise - acc = read_fonts_conf_indeed( - path, home, xdg_config_home, xdg_data_home, - acc, done, dirs_done) + acc = read_fonts_conf_indeed(path, + home, + xdg_config_home, + xdg_data_home, + acc, + done, + dirs_done, + find_files) elseif lfsisdir(path) then --- arrow code ahead local config_files = find_files (path, conf_filter) for _, filename in next, config_files do if not done[filename] then - acc = read_fonts_conf_indeed( - filename, home, xdg_config_home, xdg_data_home, - acc, done, dirs_done) + acc = read_fonts_conf_indeed(filename, + home, + xdg_config_home, + xdg_data_home, + acc, + done, + dirs_done, + find_files) end end end --- match “kind” @@ -325,11 +350,14 @@ local read_fonts_conf = function (path_list, find_files) local done = { } ---> set: files inspected local dirs_done = { } ---> set: dirs in list for i=1, #path_list do --- we keep the state between files - acc, done, dirs_done = read_fonts_conf_indeed( - path_list[i], home, xdg_config_home, - xdg_data_home, - acc, done, dirs_done, - find_files) + acc, done, dirs_done = read_fonts_conf_indeed(path_list[i], + home, + xdg_config_home, + xdg_data_home, + acc, + done, + dirs_done, + find_files) end return acc end |