diff options
author | Hans Hagen <pragma@wxs.nl> | 2014-05-29 12:47:00 +0200 |
---|---|---|
committer | Hans Hagen <pragma@wxs.nl> | 2014-05-29 12:47:00 +0200 |
commit | b1ad678bea29274b697a23c9f3a2784e378c91e2 (patch) | |
tree | dc790c362645c7e066f8addae73619c8f0f6b917 /tex/context/base/publ-dat.lua | |
parent | 2e9e756378815be869d82c2fb3eeeaa4c23bcc50 (diff) | |
download | context-b1ad678bea29274b697a23c9f3a2784e378c91e2.tar.gz |
beta 2014.05.29 12:47
Diffstat (limited to 'tex/context/base/publ-dat.lua')
-rw-r--r-- | tex/context/base/publ-dat.lua | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/tex/context/base/publ-dat.lua b/tex/context/base/publ-dat.lua index 1b9684542..f3d8547fb 100644 --- a/tex/context/base/publ-dat.lua +++ b/tex/context/base/publ-dat.lua @@ -272,18 +272,19 @@ local space = S(" \t\n\r\f") -- / " " local spacing = space^0 local equal = P("=") ----- collapsed = (space^1)/ " " -local collapsed = (lpegpatterns.whitespace^1)/ " " +local collapsed = (lpegpatterns.whitespace^1)/" " ----- balanced = lpegpatterns.balanced --- local balanced = P { +local balanced = P { -- [1] = ((escape * (left+right)) + (collapsed + 1 - (left+right)) + V(2))^0, --- [2] = left * V(1) * right, --- } + [1] = ((escape * (left+right)) + collapsed + (1 - (left+right))^1 + V(2))^0, + [2] = left * V(1) * right, +} -local balanced = P { +local unbalanced = P { [1] = left * V(2) * right, - [2] = ((escape * (left+right)) + (collapsed + 1 - (left+right)) + V(1))^0, + [2] = ((escape * (left+right)) + collapsed + (1 - (left+right))^1 + V(1))^0, } local keyword = C((R("az","AZ","09") + S("@_:-"))^1) @@ -295,8 +296,9 @@ local s_quoted = ((escape*single) + collapsed + (1-single))^0 local d_quoted = ((escape*double) + collapsed + (1-double))^0 local b_value = (left /"") * balanced * (right /"") -local s_value = (single/"") * (b_value + s_quoted) * (single/"") -local d_value = (double/"") * (b_value + d_quoted) * (double/"") +local u_value = (left /"") * unbalanced * (right /"") -- get rid of outer { } +local s_value = (single/"") * (u_value + s_quoted) * (single/"") +local d_value = (double/"") * (u_value + d_quoted) * (double/"") local r_value = reference * Carg(1) /resolve local somevalue = d_value + b_value + s_value + r_value @@ -320,10 +322,20 @@ local bibtotable = (space + forget + shortcut + definition + comment + 1)^0 -- converttoxml -> dataset.xmldata from dataset.luadata function publications.loadbibdata(dataset,content,source,kind) + if not source then + report("invalid source for dataset %a",dataset) + return + end + local size = #content + if size == 0 then + report("empty source %a for dataset %a",source,dataset) + else + report("adding bib data to set %a from source %a",dataset,source) + end dataset = datasets[dataset] statistics.starttiming(publications) - publicationsstats.nofbytes = publicationsstats.nofbytes + #content - dataset.nofbytes = dataset.nofbytes + #content + publicationsstats.nofbytes = publicationsstats.nofbytes + size + dataset.nofbytes = dataset.nofbytes + size if source then table.insert(dataset.sources, { filename = source, checksum = md5.HEX(content) }) dataset.loaded[source] = kind or true |