summaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2013-10-10 14:36:00 +0200
committerHans Hagen <pragma@wxs.nl>2013-10-10 14:36:00 +0200
commit3d619de789d22758716e3d327b53da4bd790592a (patch)
tree5a0f8c8085f7b442df6a907488253f8dd19061ee /tex
parent08f0e17c9be1e146728ca331fb892cb6c6023597 (diff)
downloadcontext-3d619de789d22758716e3d327b53da4bd790592a.tar.gz
beta 2013.10.10 14:36
Diffstat (limited to 'tex')
-rw-r--r--tex/context/base/cont-new.mkiv2
-rw-r--r--tex/context/base/context-version.pdfbin4113 -> 4103 bytes
-rw-r--r--tex/context/base/context.mkiv2
-rw-r--r--tex/context/base/data-tmp.lua26
-rw-r--r--tex/context/base/status-files.pdfbin24546 -> 24545 bytes
-rw-r--r--tex/context/base/status-lua.pdfbin224675 -> 224749 bytes
-rw-r--r--tex/context/base/supp-box.lua67
-rw-r--r--tex/context/base/supp-box.mkiv18
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
9 files changed, 103 insertions, 14 deletions
diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv
index 8a6ea178b..0ddf06fcb 100644
--- a/tex/context/base/cont-new.mkiv
+++ b/tex/context/base/cont-new.mkiv
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2013.10.08 21:49}
+\newcontextversion{2013.10.10 14:36}
%D This file is loaded at runtime, thereby providing an excellent place for
%D hacks, patches, extensions and new features.
diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf
index bceaf1cf6..fa1889a43 100644
--- a/tex/context/base/context-version.pdf
+++ b/tex/context/base/context-version.pdf
Binary files differ
diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv
index fb6dadb07..9d38f7801 100644
--- a/tex/context/base/context.mkiv
+++ b/tex/context/base/context.mkiv
@@ -25,7 +25,7 @@
%D up and the dependencies are more consistent.
\edef\contextformat {\jobname}
-\edef\contextversion{2013.10.08 21:49}
+\edef\contextversion{2013.10.10 14:36}
\edef\contextkind {beta}
%D For those who want to use this:
diff --git a/tex/context/base/data-tmp.lua b/tex/context/base/data-tmp.lua
index 5025a8a0a..3e109dcfe 100644
--- a/tex/context/base/data-tmp.lua
+++ b/tex/context/base/data-tmp.lua
@@ -250,6 +250,10 @@ end
caches.getreadablepaths = getreadablepaths
caches.getwritablepath = getwritablepath
+-- this can be tricky as we can have a pre-generated format while at the same time
+-- use e.g. a home path where we have updated file databases and so maybe we need
+-- to check first if we do have a writable one
+
function caches.getfirstreadablefile(filename,...)
local rd = getreadablepaths(...)
for i=1,#rd do
@@ -263,6 +267,28 @@ function caches.getfirstreadablefile(filename,...)
return caches.setfirstwritablefile(filename,...)
end
+-- next time we have an issue, we can test this instead:
+
+function caches.getfirstreadablefile_TEST_ME_FIRST(filename,...)
+ -- check if we have already written once
+ local fullname, path = caches.setfirstwritablefile(filename,...)
+ if is_readable(fullname) then
+ return fullname, path -- , true
+ end
+ -- otherwise search for pregenerated
+ local rd = getreadablepaths(...)
+ for i=1,#rd do
+ local path = rd[i]
+ local fullname = file.join(path,filename)
+ if is_readable(fullname) then
+ usedreadables[i] = true
+ return fullname, path -- , false
+ end
+ end
+ -- else assume new written
+ return fullname, path -- , true
+end
+
function caches.setfirstwritablefile(filename,...)
local wr = getwritablepath(...)
local fullname = file.join(wr,filename)
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index 3add679c9..3c3a057d6 100644
--- a/tex/context/base/status-files.pdf
+++ b/tex/context/base/status-files.pdf
Binary files differ
diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf
index b3a6c3f1f..5932a14ea 100644
--- a/tex/context/base/status-lua.pdf
+++ b/tex/context/base/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/supp-box.lua b/tex/context/base/supp-box.lua
index a8603ace3..bc0a7056e 100644
--- a/tex/context/base/supp-box.lua
+++ b/tex/context/base/supp-box.lua
@@ -10,8 +10,12 @@ if not modules then modules = { } end modules ['supp-box'] = {
local report_hyphenation = logs.reporter("languages","hyphenation")
-local tex, node = tex, node
-local context, commands, nodes = context, commands, nodes
+local tex = tex
+local context = context
+local commands = commands
+local nodes = nodes
+
+local splitstring = string.split
local nodecodes = nodes.nodecodes
@@ -25,10 +29,10 @@ local new_penalty = nodes.pool.penalty
local new_hlist = nodes.pool.hlist
local new_glue = nodes.pool.glue
-local free_node = node.free
-local copy_list = node.copy_list
-local copy_node = node.copy
-local find_tail = node.tail
+local free_node = nodes.free
+local copy_list = nodes.copy_list
+local copy_node = nodes.copy
+local find_tail = nodes.tail
local texsetbox = tex.setbox
local texgetbox = tex.getbox
@@ -117,6 +121,57 @@ end
commands.applytochars = applytochars
commands.applytowords = applytowords
+local split_char = lpeg.Ct(lpeg.C(1)^0)
+local split_word = lpeg.tsplitat(lpeg.patterns.space)
+local split_line = lpeg.tsplitat(lpeg.patterns.eol)
+
+function commands.processsplit(str,command,how,spaced)
+ how = how or "word"
+ if how == "char" then
+ local words = lpeg.match(split_char,str)
+ for i=1,#words do
+ local word = words[i]
+ if word == " " then
+ if spaced then
+ context.space()
+ end
+ elseif command then
+ context[command](word)
+ else
+ context(word)
+ end
+ end
+ elseif how == "word" then
+ local words = lpeg.match(split_word,str)
+ for i=1,#words do
+ local word = words[i]
+ if spaced and i > 1 then
+ context.space()
+ end
+ if command then
+ context[command](word)
+ else
+ context(word)
+ end
+ end
+ elseif how == "line" then
+ local words = lpeg.match(split_line,str)
+ for i=1,#words do
+ local word = words[i]
+ if spaced and i > 1 then
+ context.par()
+ end
+ if command then
+ context[command](word)
+ else
+ context(word)
+ end
+ end
+ else
+ context(str)
+ end
+end
+
function commands.vboxlisttohbox(original,target,inbetween)
local current = texgetbox(original).list
local head = nil
diff --git a/tex/context/base/supp-box.mkiv b/tex/context/base/supp-box.mkiv
index f78a8554c..ad35b525b 100644
--- a/tex/context/base/supp-box.mkiv
+++ b/tex/context/base/supp-box.mkiv
@@ -1346,11 +1346,11 @@
%D {processisolatedwords,processisolatedchars}
%D
%D \startbuffer
-%D \processisolatedchars{some more words} \ruledhbox \par
-%D \processisolatedchars{and some $x + y = z$ math} \ruledhbox \par
+%D \processisolatedchars{some more words} \ruledhbox \par
+%D \processisolatedchars{and some $x + y = z$ math} \ruledhbox \par
%D \processisolatedchars{and a \hbox{$x + y = z$}} \ruledhbox \par
-%D \processisolatedwords{some more words} \ruledhbox \par
-%D \processisolatedwords{and some $x + y = z$ math} \ruledhbox \par
+%D \processisolatedwords{some more words} \ruledhbox \par
+%D \processisolatedwords{and some $x + y = z$ math} \ruledhbox \par
%D \processisolatedwords{and a \hbox{$x + y = z$}} \ruledhbox \par
%D \stopbuffer
%D
@@ -1379,7 +1379,15 @@
\let\processword\relax
-%D The better variant:
+\unexpanded\def\applytosplitstringchar#1#2{\dontleavehmode\ctxcommand{processsplit(\!!bs#2\!!es,"\strippedcsname#1","char")}}
+\unexpanded\def\applytosplitstringword#1#2{\dontleavehmode\ctxcommand{processsplit(\!!bs#2\!!es,"\strippedcsname#1","word")}}
+\unexpanded\def\applytosplitstringline#1#2{\dontleavehmode\ctxcommand{processsplit(\!!bs#2\!!es,"\strippedcsname#1","line")}}
+
+\unexpanded\def\applytosplitstringcharspaced#1#2{\dontleavehmode\ctxcommand{processsplit(\!!bs#2\!!es,"\strippedcsname#1","char",true)}}
+\unexpanded\def\applytosplitstringwordspaced#1#2{\dontleavehmode\ctxcommand{processsplit(\!!bs#2\!!es,"\strippedcsname#1","word",true)}}
+\unexpanded\def\applytosplitstringlinespaced#1#2{\dontleavehmode\ctxcommand{processsplit(\!!bs#2\!!es,"\strippedcsname#1","line",true)}}
+
+%D A variant:
\unexpanded\def\applytocharacters#1%
{\dontleavehmode
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 211093502..330e93690 100644
--- a/tex/generic/context/luatex/luatex-fonts-merged.lua
+++ b/tex/generic/context/luatex/luatex-fonts-merged.lua
@@ -1,6 +1,6 @@
-- merged file : luatex-fonts-merged.lua
-- parent file : luatex-fonts.lua
--- merge date : 10/08/13 21:49:42
+-- merge date : 10/10/13 14:36:18
do -- begin closure to overcome local limits and interference