diff options
| -rw-r--r-- | otfl-fonts-merged.lua | 38 | ||||
| -rw-r--r-- | otfl-fonts.lua | 24 | 
2 files changed, 22 insertions, 40 deletions
diff --git a/otfl-fonts-merged.lua b/otfl-fonts-merged.lua index e095153..314305a 100644 --- a/otfl-fonts-merged.lua +++ b/otfl-fonts-merged.lua @@ -1,6 +1,6 @@  -- merged file : luatex-fonts-merged.lua  -- parent file : luatex-fonts.lua --- merge date  : 04/17/13 18:36:10 +-- merge date  : 04/20/13 13:33:53  do -- begin closure to overcome local limits and interference @@ -1401,7 +1401,7 @@ function table.tofile(filename,root,name,specification)      io.flush()    end  end -local function flattened(t,f,depth) +local function flattened(t,f,depth)     if f==nil then      f={}      depth=0xFFFF @@ -1416,19 +1416,16 @@ local function flattened(t,f,depth)        if depth>0 and type(v)=="table" then          flattened(v,f,depth-1)        else -        f[k]=v +        f[#f+1]=v        end      end    end -  local n=#f    for k=1,#t do      local v=t[k]      if depth>0 and type(v)=="table" then        flattened(v,f,depth-1) -      n=#f      else -      n=n+1 -      f[n]=v +      f[#f+1]=v      end    end    return f @@ -2926,7 +2923,7 @@ storage={    register=dummyfunction,    shared={},  } -logs=logs or { +logs={    new=dummyreporter,    reporter=dummyreporter,    messenger=dummyreporter, @@ -2988,7 +2985,7 @@ end  do    local cachepaths=kpse.expand_path('$TEXMFCACHE') or ""    if cachepaths=="" then -    cachepaths=kpse.expand_path('$TEXMFVAR') or "" +    cachepaths=kpse.expand_path('$TEXMFVAR')    end    if cachepaths=="" then      cachepaths=kpse.expand_path('$VARTEXMF') @@ -10379,6 +10376,7 @@ local variants=allocate()  specifiers.variants=variants  definers.methods=definers.methods or {}  local internalized=allocate()  +local lastdefined=nil   local loadedfonts=constructors.loadedfonts  local designsizes=constructors.designsizes  local resolvefile=fontgoodies and fontgoodies.filenames and fontgoodies.filenames.resolve or function(s) return s end @@ -10579,18 +10577,7 @@ function definers.loadfont(specification)    end    return tfmdata  end -local function checkvirtual(tfmdata) -  local fonts=tfmdata.fonts -  local selfid=font.nextid() -  if fonts and #fonts>0 then -    for i=1,#fonts do -      if fonts[i][2]==0 then -        fonts[i][2]=selfid -      end -    end -  else -    tfmdata.fonts={ "id",selfid } -  end +function constructors.checkvirtualids()  end  function constructors.readanddefine(name,size)     local specification=definers.analyze(name,size) @@ -10604,7 +10591,8 @@ function constructors.readanddefine(name,size)    if not id then      local tfmdata=definers.loadfont(specification)      if tfmdata then -      checkvirtual(tfmdata)  +      tfmdata.properties.hash=hash +      constructors.checkvirtualids(tfmdata)         id=font.define(tfmdata)        definers.register(tfmdata,id)      else @@ -10613,8 +10601,6 @@ function constructors.readanddefine(name,size)    end    return fontdata[id],id  end -local lastdefined=nil  -local internalized={}  function definers.current()     return lastdefined  end @@ -10625,7 +10611,9 @@ end  function definers.register(tfmdata,id)    if tfmdata and id then      local hash=tfmdata.properties.hash -    if not internalized[hash] then +    if not hash then +      report_defining("registering font, id %a, name %a, invalid hash",id,tfmdata.properties.filename or "?") +    elseif not internalized[hash] then        internalized[hash]=id        if trace_defining then          report_defining("registering font, id %s, hash %a",id,hash) diff --git a/otfl-fonts.lua b/otfl-fonts.lua index 7e32465..96f3501 100644 --- a/otfl-fonts.lua +++ b/otfl-fonts.lua @@ -16,6 +16,10 @@ if not modules then modules = { } end modules ['luatex-fonts'] = {  -- places where in context other code is plugged in, but this does not affect the core code. Users  -- can (given that their macro package provides this option) access the font data (characters,  -- descriptions, properties, parameters, etc) of this main table. +-- +-- Future versions will probably have some more specific context code removed, like tracing and +-- obscure hooks, so that we have a more efficient version (and less files too). So, don't depend +-- too much on low level code that is meant for context as it can change without notice.  utf = utf or unicode.utf8 @@ -37,12 +41,10 @@ if not generic_context then      generic_context  = { }  end -local printinfo = function(s) texio.write_nl("log", s) end -  if not generic_context.push_namespaces then      function generic_context.push_namespaces() -        printinfo(" <push namespace>") +        texio.write(" <push namespace>")          local normalglobal = { }          for k, v in next, _G do              normalglobal[k] = v @@ -52,7 +54,7 @@ if not generic_context.push_namespaces then      function generic_context.pop_namespaces(normalglobal,isolate)          if normalglobal then -            printinfo(" <pop namespace>") +            texio.write(" <pop namespace>")              for k, v in next, _G do                  if not normalglobal[k] then                      generic_context[k] = v @@ -112,7 +114,7 @@ local function loadmodule(name,continue)          end      else          if verbose then -            printinfo(string.format(" <%s>",foundname)) -- no file.basename yet +            texio.write(string.format(" <%s>",foundname)) -- no file.basename yet          end          dofile(foundname)      end @@ -158,19 +160,11 @@ if non_generic_context.luatex_fonts.skip_loading ~= true then          loadmodule("l-string.lua")          loadmodule("l-table.lua")          loadmodule("l-io.lua") -        ----------("l-number.lua") -        ----------("l-set.lua") -        ----------("l-os.lua")          loadmodule("l-file.lua") -        ----------("l-md5.lua") -        ----------("l-url.lua") -        ----------("l-dir.lua")          loadmodule("l-boolean.lua") -        ----------("l-unicode.lua")          loadmodule("l-math.lua")          loadmodule("util-str.lua") -          -- The following modules contain code that is either not used at all outside context or will fail          -- when enabled due to lack of other modules. @@ -192,7 +186,7 @@ if non_generic_context.luatex_fonts.skip_loading ~= true then          -- with context. The mtx-fonts script can be used to genate this file (using the --names option).          -- in 2013/14 we will merge/move some generic files into luatex-fonts-* files (copies) so that -        -- intermediate updates of context not interfere +        -- intermediate updates of context not interfere; we can then also use the general merger          loadmodule('font-ini.lua')          loadmodule('font-con.lua') @@ -254,6 +248,6 @@ end  -- We're done. ---texio.write(string.format(" <luatex-fonts.lua loaded in %0.3f seconds>", os.gettimeofday()-starttime)) +texio.write(string.format(" <luatex-fonts.lua loaded in %0.3f seconds>", os.gettimeofday()-starttime))  generic_context.pop_namespaces(whatever)  | 
