From 6a6075b138019c1d8a48a1a063cd8f89aabe6de9 Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Sat, 5 Apr 2014 14:31:51 +0200 Subject: [doc] update NEWS --- NEWS | 1 + 1 file changed, 1 insertion(+) diff --git a/NEWS b/NEWS index 1966c03..2aa319e 100644 --- a/NEWS +++ b/NEWS @@ -16,6 +16,7 @@ Change History * Move logging routines from luaotfload-override in to luaotfload-log. * Scan local font files (``--local`` flag to luaotfload-tool, flag ``scan_local`` during TeX run). + * Add bisection mode (``--bisect``) to luaotfload-tool. 2013/12/31, luaotfload v2.4 * Additional self-tests, now in separate file (luaotfload-diagnostics.lua) -- cgit v1.2.3 From e6a3a269577fb715079fa185e4d96f1a04b5e1ae Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Sat, 5 Apr 2014 14:33:02 +0200 Subject: [fontloader] sync with Context as of 2014-04-05 --- src/luaotfload-fontloader.lua | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/luaotfload-fontloader.lua b/src/luaotfload-fontloader.lua index ca538df..fa61668 100644 --- a/src/luaotfload-fontloader.lua +++ b/src/luaotfload-fontloader.lua @@ -1,6 +1,6 @@ -- merged file : luatex-fonts-merged.lua -- parent file : luatex-fonts.lua --- merge date : 03/25/14 02:17:04 +-- merge date : 04/04/14 00:08:59 do -- begin closure to overcome local limits and interference @@ -3394,6 +3394,17 @@ function caches.loaddata(paths,name) for i=1,#paths do local data=false local luaname,lucname=makefullname(paths[i],name) + if lucname and not lfs.isfile(lucname) and type(caches.compile)=="function" then + texio.write(string.format("(compiling luc: %s)",lucname)) + data=loadfile(luaname) + if data then + data=data() + end + if data then + caches.compile(data,luaname,lucname) + return data + end + end if lucname and lfs.isfile(lucname) then texio.write(string.format("(load luc: %s)",lucname)) data=loadfile(lucname) @@ -5764,7 +5775,6 @@ unify=function(data,filename) if unicode then krn[unicode]=kern else - print(unicode,name) end end description.kerns=krn -- cgit v1.2.3 From f2408bde64eaa2d4081a394bca3991bb7f47dbd3 Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Sun, 6 Apr 2014 12:24:13 +0200 Subject: [db] update index structure documentation --- src/luaotfload-database.lua | 65 ++++++++++++++++++++++----------------------- 1 file changed, 32 insertions(+), 33 deletions(-) diff --git a/src/luaotfload-database.lua b/src/luaotfload-database.lua index 936e380..dc783d8 100644 --- a/src/luaotfload-database.lua +++ b/src/luaotfload-database.lua @@ -338,7 +338,6 @@ This is a sketch of the luaotfload db: status : filestatus; mappings : fontentry list; meta : metadata; - names : namedata; // TODO: check for relevance after db is finalized } and familytable = { local : (format, familyentry) hash; // specified with include dir @@ -346,10 +345,10 @@ This is a sketch of the luaotfload db: system : (format, familyentry) hash; } and familyentry = { - regular : sizes; - italic : sizes; - bold : sizes; - bolditalic : sizes; + r : sizes; // regular + i : sizes; // italic + b : sizes; // bold + bi : sizes; // bold italic } and sizes = { default : int; // points into mappings or names @@ -358,10 +357,10 @@ This is a sketch of the luaotfload db: and metadata = { local : bool; (* set if local fonts were added to the db *) formats : string list; // { "otf", "ttf", "ttc", "dfont" } - statistics : TODO; - version : float; + statistics : TODO; // created when built with "--stats" + version : float; // index version } - and filemap = { + and filemap = { // created by generate_filedata() base : { local : (string, int) hash; // basename -> idx system : (string, int) hash; @@ -374,36 +373,36 @@ This is a sketch of the luaotfload db: }; full : (int, string) hash; // idx -> full path } - and fontentry = { - barename : string; - familyname : string; - filename : string; - fontname : string; // <- metadata - fullname : string; // <- metadata - sanitized : { - family : string; - fontstyle_name : string; // <- new in 2.4 - fontname : string; // <- metadata - fullname : string; // <- namedata.names - metafamily : string; - pfullname : string; - prefmodifiers : string; - psname : string; - subfamily : string; - }; - size : int list; - slant : int; - subfont : int; - location : local | system | texmf; - weight : int; - width : int; - units_per_em : int; // mainly 1000, but also 2048 or 256 + and fontentry = { // finalized by collect_families() + basename : string; // file name without path "foo.otf" + conflicts : { barename : int; basename : int }; // filename conflict with font at index; happens with subfonts + familyname : string; // sanitized name of the font family the font belongs to, usually from the names table + fontname : string; // sanitized name of the font + fontstyle_name : string; // the fontstyle_name field returned by fontloader.info() + format : string; // "otf" | "ttf" | "dfont" | "pfa" | "pfb" | "afm" + fullname : string; // sanitized full name of the font including style modifiers + fullpath : string; // path to font in filesystem + index : int; // index in the mappings table + italicangle : float; // italic angle; non-zero with oblique faces + location : string; // "texmf" | "system" | "local" + metafamily : string; // alternative family identifier if appropriate, sanitized + plainname : string; // unsanitized font name + prefmodifiers : string; // sanitized preferred subfamily (names table 14) + psname : string; // PostScript name + size : (false | float * float * float); // if available, size info from the size table converted from decipoints + splainname : string; // sanitized version of the “plainname” field + splitstyle : string; // style information obtained by splitting the full name at the last dash + subfamily : string; // sanitized subfamily (names table 2) + subfont : (int | bool); // integer if font is part of a TrueType collection ("ttc") + version : string; // font version string + weight : int; // usWeightClass } and filestatus = (string, // fullname { index : int list; // pointer into mappings timestamp : int; }) dict -beware that this is a reconstruction and may be incomplete. +beware that this is a reconstruction and may be incomplete or out of +date. Last update: 2014-04-06, describing version 2.51. mtx-fonts has in names.tma: -- cgit v1.2.3 From 35523f88fccd87a52395d73570a13d56bdf177ca Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Wed, 16 Apr 2014 21:37:39 +0200 Subject: [fontloader] sync with Context as of 2014-04-16 --- src/luaotfload-fontloader.lua | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/luaotfload-fontloader.lua b/src/luaotfload-fontloader.lua index fa61668..d4311b2 100644 --- a/src/luaotfload-fontloader.lua +++ b/src/luaotfload-fontloader.lua @@ -1,6 +1,6 @@ -- merged file : luatex-fonts-merged.lua -- parent file : luatex-fonts.lua --- merge date : 04/04/14 00:08:59 +-- merge date : 04/15/14 09:51:32 do -- begin closure to overcome local limits and interference @@ -3628,9 +3628,17 @@ local free_node=node.free local remove_node=node.remove local new_node=node.new local traverse_id=node.traverse_id -local math_code=nodecodes.math nodes.handlers.protectglyphs=node.protect_glyphs nodes.handlers.unprotectglyphs=node.unprotect_glyphs +local math_code=nodecodes.math +local end_of_math=node.end_of_math +function node.end_of_math(n) + if n.id==math_code and n.subtype==1 then + return n + else + return end_of_math(n) + end +end function nodes.remove(head,current,free_too) local t=current head,current=remove_node(head,current) @@ -3924,14 +3932,15 @@ constructors.sharefonts=false constructors.nofsharedfonts=0 local sharednames={} function constructors.trytosharefont(target,tfmdata) - if constructors.sharefonts then + if constructors.sharefonts then local characters=target.characters local n=1 local t={ target.psname } local u=sortedkeys(characters) for i=1,#u do + local k=u[i] n=n+1;t[n]=k - n=n+1;t[n]=characters[u[i]].index or k + n=n+1;t[n]=characters[k].index or k end local h=md5.HEX(concat(t," ")) local s=sharednames[h] -- cgit v1.2.3 From 0eabdd275af9d743f886907636188c5febbdbb50 Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Sat, 19 Apr 2014 14:56:44 +0200 Subject: [misc] make valgrind suppressions more strict --- misc/valgrind-kpse-suppression.sup | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/misc/valgrind-kpse-suppression.sup b/misc/valgrind-kpse-suppression.sup index e1cc5f5..63dee22 100644 --- a/misc/valgrind-kpse-suppression.sup +++ b/misc/valgrind-kpse-suppression.sup @@ -1,7 +1,7 @@ { kpathsea-garbage-1 Memcheck:Leak - match-leak-kinds: definite + match-leak-kinds: all ... fun:kpathsea_cnf_get } @@ -9,7 +9,7 @@ { kpathsea-garbage-2 Memcheck:Leak - match-leak-kinds: definite + match-leak-kinds: all ... fun:kpse_program_basename } @@ -18,7 +18,7 @@ { kpathsea-garbage-3 Memcheck:Leak - match-leak-kinds: definite + match-leak-kinds: all ... fun:kpse_find_file } @@ -27,7 +27,7 @@ { kpathsea-garbage-4 Memcheck:Leak - match-leak-kinds: definite + match-leak-kinds: all ... fun:find_file } @@ -35,7 +35,7 @@ { kpathsea-garbage-5 Memcheck:Leak - match-leak-kinds: definite + match-leak-kinds: all ... fun:lua_kpse_lookup } @@ -43,7 +43,7 @@ { kpathsea-garbage-6 Memcheck:Leak - match-leak-kinds: definite + match-leak-kinds: all ... fun:find_file } @@ -52,7 +52,7 @@ { kpathsea-garbage-7 Memcheck:Leak - match-leak-kinds: definite + match-leak-kinds: all ... fun:expand_path } @@ -60,7 +60,7 @@ { kpathsea-garbage-8 Memcheck:Leak - match-leak-kinds: definite + match-leak-kinds: all ... fun:do_lua_kpathsea_lookup } @@ -69,7 +69,7 @@ { kpathsea-garbage-9 Memcheck:Leak - match-leak-kinds: definite + match-leak-kinds: all ... fun:kpathsea_find_file } @@ -78,7 +78,7 @@ { kpathsea-garbage-10 Memcheck:Leak - match-leak-kinds: definite + match-leak-kinds: all ... fun:kpathsea_init_db } @@ -87,7 +87,7 @@ { kpathsea-garbage-11 Memcheck:Leak - match-leak-kinds: definite + match-leak-kinds: all ... fun:kpathsea_find_file_generic } @@ -96,7 +96,7 @@ { kpathsea-garbage-12 Memcheck:Leak - match-leak-kinds: definite + match-leak-kinds: all ... fun:expand_var } @@ -105,7 +105,7 @@ { kpathsea-garbage-13 Memcheck:Leak - match-leak-kinds: definite + match-leak-kinds: all ... fun:init_path } @@ -114,7 +114,7 @@ { kpathsea-garbage-14 Memcheck:Leak - match-leak-kinds: definite + match-leak-kinds: all ... fun:kpse_in_name_ok } @@ -123,7 +123,7 @@ { kpathsea-garbage-15 Memcheck:Leak - match-leak-kinds: definite + match-leak-kinds: all ... fun:kpathsea_var_value } -- cgit v1.2.3 From d44fc0f4c351e3301d1573888faae922a94cb3e4 Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Mon, 21 Apr 2014 12:14:25 +0200 Subject: [misc] add valgrind suppression covering kpse_set_program_name --- misc/valgrind-kpse-suppression.sup | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/misc/valgrind-kpse-suppression.sup b/misc/valgrind-kpse-suppression.sup index 63dee22..dc32586 100644 --- a/misc/valgrind-kpse-suppression.sup +++ b/misc/valgrind-kpse-suppression.sup @@ -129,3 +129,12 @@ } +{ + kpathsea-garbage-16 + Memcheck:Leak + match-leak-kinds: all + ... + fun:kpse_set_program_name +} + + -- cgit v1.2.3