diff options
| -rw-r--r-- | luaotfload-auxiliary.lua | 28 | ||||
| -rw-r--r-- | luaotfload-database.lua | 19 | ||||
| -rw-r--r-- | luaotfload-merged.lua | 25 | 
3 files changed, 44 insertions, 28 deletions
| diff --git a/luaotfload-auxiliary.lua b/luaotfload-auxiliary.lua index 999bc22..11af445 100644 --- a/luaotfload-auxiliary.lua +++ b/luaotfload-auxiliary.lua @@ -32,6 +32,7 @@ local stringformat  = string.format  local stringgsub    = string.gsub  local stringbyte    = string.byte  local stringfind    = string.find +local tablecopy     = table.copy  -----------------------------------------------------------------------  ---                          font patches @@ -467,4 +468,31 @@ end  aux.sprint_math_dimension = sprint_math_dimension +----------------------------------------------------------------------- +---                    extra database functions +----------------------------------------------------------------------- + +--- migrated from luaotfload-database.lua +--- https://github.com/lualatex/luaotfload/pull/61#issuecomment-17776975 + +--- string -> (int, int) +local scan_external_dir = function (dir) +    local old_names, new_names = names.data +    if not old_names then +        old_names = load_names() +    end +    new_names = tablecopy(old_names) +    local n_scanned, n_new = fonts.names.scan_dir(dir, old_names, +                                                  new_names) +    --- FIXME +    --- This doesn’t seem right. If a db update is triggered after this +    --- point, then the added fonts will be saved along with it -- +    --- which is not as “temporarily” as it should be. (This should be +    --- addressed during a refactoring of names_resolve().) +    names.data = new_names +    return n_scanned, n_new +end + +aux.scan_external_dir = scan_external_dir +  -- vim:tw=71:sw=2:ts=2:expandtab diff --git a/luaotfload-database.lua b/luaotfload-database.lua index 60a7977..f4c6fdc 100644 --- a/luaotfload-database.lua +++ b/luaotfload-database.lua @@ -249,7 +249,6 @@ local resolve  local resolve_cached  local save_names  local save_lookups -local scan_external_dir  local update_names  --- state of the database @@ -1652,31 +1651,15 @@ local show_cache = function ( )      return true  end ---- is this used anywhere? we decided to comment it for the ---- time being. ---- https://github.com/lualatex/luaotfload/pull/61 ---scan_external_dir = function (dir) ---    local old_names, new_names ---    if fonts_loaded then ---        old_names = names.data ---    else ---        old_names = load_names() ---    end ---    new_names = tablecopy(old_names) ---    local n_scanned, n_new = scan_dir(dir, old_names, new_names) ---    names.data = new_names ---    return n_scanned, n_new ---end -  -----------------------------------------------------------------------  --- export functionality to the namespace “fonts.names”  ----------------------------------------------------------------------- +names.scan_dir                    = scan_dir  names.flush_lookup_cache          = flush_lookup_cache  names.save_lookups                = save_lookups  names.load                        = load_names  names.save                        = save_names ------.scan                        = scan_external_dir  names.update                      = update_names  names.crude_file_lookup           = crude_file_lookup  names.crude_file_lookup_verbose   = crude_file_lookup_verbose diff --git a/luaotfload-merged.lua b/luaotfload-merged.lua index 008b02a..f814bdb 100644 --- a/luaotfload-merged.lua +++ b/luaotfload-merged.lua @@ -1,6 +1,6 @@  -- merged file : luatex-fonts-merged.lua  -- parent file : luatex-fonts.lua --- merge date  : 05/10/13 15:05:28 +-- merge date  : 05/12/13 22:16:22  do -- begin closure to overcome local limits and interference @@ -2896,8 +2896,13 @@ if context then    texio.write_nl("fatal error: this module is not for context")    os.exit()  end -local dummyfunction=function() end -local dummyreporter=function(c) return function(...) texio.write_nl(c.." : "..string.formatters(...)) end end +local dummyfunction=function() +end +local dummyreporter=function(c) +  return function(...) +    (texio.reporter or texio.write_nl)(c.." : "..string.formatters(...)) +  end +end  statistics={    register=dummyfunction,    starttiming=dummyfunction, @@ -4650,7 +4655,7 @@ local function fromunicode16(str)      return tonumber(str,16)    else      local l,r=match(str,"(....)(....)") -    return (tonumber(l,16)- 0xD800)*0x400+tonumber(r,16)-0xDC00 +    return (tonumber(l,16))*0x400+tonumber(r,16)-0xDC00    end  end  mappings.loadlumtable=loadlumtable @@ -8336,7 +8341,7 @@ local fonthashes=fonts.hashes  local fontdata=fonthashes.identifiers  local otffeatures=fonts.constructors.newfeatures("otf")  local registerotffeature=otffeatures.register -local onetimemessage=fonts.loggers.onetimemessage +local onetimemessage=fonts.loggers.onetimemessage or function() end  otf.defaultnodealternate="none"  local tfmdata=false  local characters=false @@ -8733,7 +8738,7 @@ function handlers.gpos_mark2base(head,start,kind,lookupname,markanchors,sequence              logwarning("%s, no matching anchors for mark %s and base %s",pref(kind,lookupname),gref(markchar),gref(basechar))            end          end -      else +      elseif trace_bugs then          onetimemessage(currentfont,basechar,"no base anchors",report_fonts)        end      elseif trace_bugs then @@ -8799,7 +8804,7 @@ function handlers.gpos_mark2ligature(head,start,kind,lookupname,markanchors,sequ              end            end          end -      else +      elseif trace_bugs then          onetimemessage(currentfont,basechar,"no base anchors",report_fonts)        end      elseif trace_bugs then @@ -8852,7 +8857,7 @@ function handlers.gpos_mark2mark(head,start,kind,lookupname,markanchors,sequence              end            end          end -      else +      elseif trace_bugs then          onetimemessage(currentfont,basechar,"no base anchors",report_fonts)        end      elseif trace_bugs then @@ -8901,7 +8906,7 @@ function handlers.gpos_cursive(head,start,kind,lookupname,exitanchors,sequence)                  end                end              end -          else +          elseif trace_bugs then              onetimemessage(currentfont,startchar,"no entry anchors",report_fonts)            end            break @@ -9449,7 +9454,7 @@ function chainprocs.gpos_cursive(head,start,stop,kind,chainname,currentcontext,l                    end                  end                end -            else +            elseif trace_bugs then                onetimemessage(currentfont,startchar,"no entry anchors",report_fonts)              end              break | 
