diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/luaotfload-database.lua | 22 | ||||
| -rwxr-xr-x | src/luaotfload-tool.lua | 18 | 
2 files changed, 39 insertions, 1 deletions
diff --git a/src/luaotfload-database.lua b/src/luaotfload-database.lua index a369d8e..e4188dc 100644 --- a/src/luaotfload-database.lua +++ b/src/luaotfload-database.lua @@ -2953,7 +2953,7 @@ end  --- int -> string  local nth_font_filename = function (n) -    report ("info", 4, "db", "Picking the %d font file.", n) +    report ("info", 4, "db", "Picking font file no. %d.", n)      if not p_blacklist then          read_blacklist ()      end @@ -2961,6 +2961,25 @@ local nth_font_filename = function (n)      return filenames[n] and filenames[n][1] or "<error>"  end +--[[doc-- + +    font_slice -- Return the fonts in the range from lo to hi. + +--doc]]-- + +local font_slice = function (lo, hi) +    report ("info", 4, "db", "Retrieving font files nos. %d--%d.", lo, hi) +    if not p_blacklist then +        read_blacklist () +    end +    local filenames = collect_font_filenames () +    local result    = { } +    for i = lo, hi do +        result[#result + 1] = filenames[i][1] +    end +    return result +end +  --[[doc      count_font_files -- Return the number of files found by @@ -3507,6 +3526,7 @@ names.getfilename                 = resolve_fullpath  names.set_location_precedence     = set_location_precedence  names.count_font_files            = count_font_files  names.nth_font_filename           = nth_font_filename +names.font_slice                  = font_slice  --- font cache  names.purge_cache    = purge_cache diff --git a/src/luaotfload-tool.lua b/src/luaotfload-tool.lua index 2301636..60d2c2c 100755 --- a/src/luaotfload-tool.lua +++ b/src/luaotfload-tool.lua @@ -906,6 +906,21 @@ end  --[[doc-- +    list_remainder -- Show remaining fonts in bisect slice. + +--doc]]-- + +local list_remainder = function (lo, hi) +    local fonts = names.font_slice (lo, hi) +    report ("info", 0, "bisect", "%d fonts left.", hi - lo) +    for i = 1, #fonts do +        report ("info", 1, "bisect", "   ยท %2d: %s", lo, fonts[i]) +        lo = lo + 1 +    end +end + +--[[doc-- +      bisect_set -- Prepare the next bisection step by setting high, low,      and pivot to new values. @@ -950,6 +965,9 @@ local bisect_set = function (outcome)      status[nsteps + 1] = { lo, hi, pivot }      write_bisect_status (status) +    if hi - lo <= 10 then +        list_remainder (lo, hi) +    end      return true, false  end  | 
