diff options
author | Hans Hagen <pragma@wxs.nl> | 2007-08-20 10:21:00 +0200 |
---|---|---|
committer | Hans Hagen <pragma@wxs.nl> | 2007-08-20 10:21:00 +0200 |
commit | deecfe09c774d4c2835f6999b2cdd9ca07e9bdae (patch) | |
tree | c921185fc4f848363c7d2ebf48a24e575c8194fe /tex/context/base/font-enc.lua | |
parent | 14fbfde2ad32d2fe4a831aa9007877e5cb5764be (diff) | |
download | context-deecfe09c774d4c2835f6999b2cdd9ca07e9bdae.tar.gz |
stable 2007.08.20 10:21
Diffstat (limited to 'tex/context/base/font-enc.lua')
-rw-r--r-- | tex/context/base/font-enc.lua | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/tex/context/base/font-enc.lua b/tex/context/base/font-enc.lua index a29ed83d3..3cc6433b2 100644 --- a/tex/context/base/font-enc.lua +++ b/tex/context/base/font-enc.lua @@ -12,8 +12,8 @@ them in tables. But we may do so some day, for consistency.</p> --ldx]]-- fonts.enc = fonts.enc or { } -fonts.enc.version = 1.01 -fonts.enc.cache = containers.define("fonts", "enc", fonts.enc.version, false) +fonts.enc.version = 1.03 +fonts.enc.cache = containers.define("fonts", "enc", fonts.enc.version, true) fonts.enc.known = { texnansi = true, @@ -52,12 +52,13 @@ will be used.</p> function fonts.enc.load(filename) local name = file.removesuffix(filename) local data = containers.read(fonts.enc.cache,name) - if data then - local vector, tag, hash = { }, "", { } + if not data then + local vector, tag, hash, unicodes = { }, "", { }, { } local foundname = input.find_file(texmf.instance,filename,'enc') if foundname and foundname ~= "" then local ok, encoding, size = input.loadbinfile(texmf.instance,foundname) if ok and encoding then + local enccodes = characters.context.enccodes encoding = encoding:gsub("%%(.-)\n","") local tag, vec = encoding:match("/(%w+)%s*%[(.*)%]%s*def") local i = 0 @@ -69,12 +70,22 @@ function fonts.enc.load(filename) else -- duplicate, play safe for tex ligs and take first end + if enccodes[ch] then + unicodes[enccodes[ch]] = i + end end i = i + 1 end end end - data = containers.write(fonts.enc.cache, name, { name=name, tag=tag, vector=vector, hash=hash }) + local data = { + name=name, + tag=tag, + vector=vector, + hash=hash, + unicodes=unicodes + } + data = containers.write(fonts.enc.cache, name, data) end return data end |