diff options
author | Philipp Gesang <phg42.2a@gmail.com> | 2013-08-31 19:59:24 +0200 |
---|---|---|
committer | Philipp Gesang <phg42.2a@gmail.com> | 2013-08-31 19:59:24 +0200 |
commit | 4f04f33f36933aaec7626154e055687b2abe903c (patch) | |
tree | 9345334fa94f8e9a553ad64451910de291b4663b | |
parent | 08135c42930576980e9bdae7a82208cb9dcf42f9 (diff) | |
download | luaotfload-4f04f33f36933aaec7626154e055687b2abe903c.tar.gz |
[db] document new db layout for rewrite
-rw-r--r-- | luaotfload-database.lua | 38 |
1 files changed, 31 insertions, 7 deletions
diff --git a/luaotfload-database.lua b/luaotfload-database.lua index 067b48c..6e49556 100644 --- a/luaotfload-database.lua +++ b/luaotfload-database.lua @@ -238,17 +238,41 @@ end This is a sketch of the luaotfload db: type dbobj = { - formats : string list; // { "otf", "ttf", "ttc", "dfont" } mappings : fontentry list; - status : filestatus; - version : float; - // new in v2.3; these supersede the basenames / barenames - // hashes from v2.2 + index : filestatus; + families : familytable; + names : namedata; // TODO: check for relevance after db is finalized + meta : metadata; filenames : filemap; } + and familytable = { + texmf : (format, familyentry) hash; + system : (format, familyentry) hash; + } + and familyentry = { + regular : sizes; + italic : sizes; + bold : sizes; + bolditalic : sizes; + } + and sizes = { + default = int; // points into mappings or names + other = (int, int) list; // design size -> index entry + } + and metadata = { + formats : string list; // { "otf", "ttf", "ttc", "dfont" } + statistics : TODO; + version : float; + } and filemap = { - base : (string, int) hash; // basename -> idx - bare : (string, int) hash; // barename -> idx + base : { + texmf : (string, int) hash; // basename -> idx + system : (string, int) hash; + }; + bare : { + texmf : (string, (string, int) hash) hash; // format -> (barename -> idx) + system : (string, (string, int) hash) hash; + }; full : (int, string) hash; // idx -> full path } and fontentry = { |