Hello Hans.
I tried to find differences in beta compared to a fully functional
version of the TL 2014 and I found two changes in the file-utils prs.lua
compared to a fully functional version of utils-prs.lua in the TL 2014
version of ConTeXt:
Changes in file utils-prs.lua (beta version) compared to TL 2014 (fully
functional version):
line no 520 of beta standalone:
specification = specification and
setmetatableindex(specification,defaultspecification) or
defaultspecification
while the TL 2014 version line no 478:
specification = specification and
table.setmetatableindex(specification,defaultspecification) or
defaultspecification
and next diference:
line no 533 of beta standalone:
local wholeblob = Ct((newline^(specification.strict and -1 or 1) *
record)^0)
while the TL 2014 version line no 491:
local wholeblob = Ct((newline^-1 * record)^0)
When I change these lines and regenerate ConTeXt format then suddenly
it works as expected. Of course, you will probably need to make some
adjustments depending on your idea of a line 533rd.
I hope this information helps a little in search of a problem.
Jaroslav Hajtmar
Dne 15. 6. 2015 v 10:45 Jaroslav Hajtmar napsal(a):
Hi Hans,
I encountered while experimenting with the latest beta version of
standalone context to a problem when using the splitter. When I
process without header file then compilation crashed when you compile
the latest beta version. Conversely, the processing of a header file
is no problem. ConTEXt while compiling the 2014 TL is fine in both
cases. I do not know from which beta version was a problem, I
discovered it by accident until now. Send minimal example. When
gCSVHeader = true everything is OK when it is gCSVHeader = false and
compilation fails.
Thanx for any advice
Jaroslav Hajtmar
Here is my minimal version of problematic example:
% csvfile.txt content:
% first,second,third,fourth
% 1,"2","3","4"
% "a","b","c","d"
% "foo","bar""baz","boogie","xyzzy"
%
\starttext
\startluacode
--gCSVHeader=true -- works fine when compiled any version of ConTeXt
gCSVHeader=false -- crashed, when compiled by last beta version
of standalone
gColNames={}
gColumnNames={}
local inpcsvfile='csvfile.txt'
local currentlyprocessedcsvfile = io.loaddata(inpcsvfile)
local mycsvsplitter = utilities.parsers.rfc4180splitter{
separator = ',',
quote = '"',
}
if gCSVHeader then
gTableRows, gColumnNames =
mycsvsplitter(currentlyprocessedcsvfile,true)
inspect(gTableRows)
inspect(gColumnNames)
for i=1,#gTableRows[1] do
gColNames[tostring(gColumnNames[i])] = i -- for indexing use
end
else
gTableRows = mycsvsplitter(currentlyprocessedcsvfile)
inspect(gTableRows)
-- ad now set column names for withoutheader situation:
for i=1,#gTableRows[1] do
context(gTableRows[i])
gColumnNames[i]='c'..(i)
end
end
gNumRows=#gTableRows -- Getting number of rows
gNumCols=#gTableRows[1] -- Getting number of columns
context.setgvalue("numrows",tostring(gNumRows))
context.setgvalue("numcols",tostring(gNumCols))
context.setgvalue("filename",tostring(inpcsvfile))
\stopluacode
File \filename\ has \numrows\ lines and \numcols\ columns.
\stoptext
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry
to the Wiki!
maillist : ntg-context@ntg.nl /
http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the
Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________