* problem with lua io.lines
@ 2013-08-14 14:05 Henning Hraban Ramm
2013-08-14 14:15 ` Hans Hagen
2013-08-14 14:15 ` Wolfgang Schuster
0 siblings, 2 replies; 8+ messages in thread
From: Henning Hraban Ramm @ 2013-08-14 14:05 UTC (permalink / raw)
To: mailing ConTeXt users list for
Hi, after a long time I'm playing with ConTeXt again…
Current beta MkIV seems to have a bug in the Lua function io.lines:
for myline in io.lines(myfile) do
logs.report(myline)
end
"myfile" just contains one line with a number, without return/newline.
If the number has more than one digit, I get single digits as "myline".
Greetlings, Hraban
---
http://www.fiee.net/texnique/
http://wiki.contextgarden.net
https://www.cacert.org (I'm an assurer)
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: problem with lua io.lines
2013-08-14 14:05 problem with lua io.lines Henning Hraban Ramm
@ 2013-08-14 14:15 ` Hans Hagen
2013-08-14 14:32 ` Henning Hraban Ramm
2013-08-14 14:15 ` Wolfgang Schuster
1 sibling, 1 reply; 8+ messages in thread
From: Hans Hagen @ 2013-08-14 14:15 UTC (permalink / raw)
To: ntg-context
On 8/14/2013 4:05 PM, Henning Hraban Ramm wrote:
> Hi, after a long time I'm playing with ConTeXt again…
>
> Current beta MkIV seems to have a bug in the Lua function io.lines:
>
> for myline in io.lines(myfile) do
> logs.report(myline)
> end
>
> "myfile" just contains one line with a number, without return/newline.
> If the number has more than one digit, I get single digits as "myline".
looks ok here, btw it's
logs.report("some tag",myline)
>
> Greetlings, Hraban
> ---
> http://www.fiee.net/texnique/
> http://wiki.contextgarden.net
> https://www.cacert.org (I'm an assurer)
>
> ___________________________________________________________________________________
> 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
> ___________________________________________________________________________________
>
--
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
| www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: problem with lua io.lines
2013-08-14 14:05 problem with lua io.lines Henning Hraban Ramm
2013-08-14 14:15 ` Hans Hagen
@ 2013-08-14 14:15 ` Wolfgang Schuster
2013-08-14 14:43 ` Henning Hraban Ramm
1 sibling, 1 reply; 8+ messages in thread
From: Wolfgang Schuster @ 2013-08-14 14:15 UTC (permalink / raw)
To: mailing list for ConTeXt users
Am 14.08.2013 um 16:05 schrieb Henning Hraban Ramm <texml@fiee.net>:
> Hi, after a long time I'm playing with ConTeXt again…
>
> Current beta MkIV seems to have a bug in the Lua function io.lines:
>
> for myline in io.lines(myfile) do
> logs.report(myline)
> end
>
> "myfile" just contains one line with a number, without return/newline.
> If the number has more than one digit, I get single digits as "myeline".
Do you have a minimal working example?
Wolfgang
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: problem with lua io.lines
2013-08-14 14:15 ` Hans Hagen
@ 2013-08-14 14:32 ` Henning Hraban Ramm
0 siblings, 0 replies; 8+ messages in thread
From: Henning Hraban Ramm @ 2013-08-14 14:32 UTC (permalink / raw)
To: mailing list for ConTeXt users
Am 2013-08-14 um 20:15 schrieb Hans Hagen <pragma@wxs.nl>:
> looks ok here, btw it's
>
> logs.report("some tag",myline)
Thanks, didn't realize since logs.reportt("everything") always worked ;-)
Greetlings, Hraban
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: problem with lua io.lines
2013-08-14 14:15 ` Wolfgang Schuster
@ 2013-08-14 14:43 ` Henning Hraban Ramm
2013-08-14 15:00 ` Hans Hagen
0 siblings, 1 reply; 8+ messages in thread
From: Henning Hraban Ramm @ 2013-08-14 14:43 UTC (permalink / raw)
To: mailing list for ConTeXt users
Am 2013-08-14 um 20:15 schrieb Wolfgang Schuster <schuster.wolfgang@gmail.com>:
>> Current beta MkIV seems to have a bug in the Lua function io.lines:
>>
>> for myline in io.lines(myfile) do
>> logs.report(myline)
>> end
>>
>> "myfile" just contains one line with a number, without return/newline.
>> If the number has more than one digit, I get single digits as "myeline".
>
> Do you have a minimal working example?
Minimal working yes, but not minimal failing ;-)
This works:
io.output(io.open("myfile.txt","w"))
io.write("123")
io.close()
for myline in io.lines("myfile.txt") do
print(myline .. "\n")
end
But in my t-lilyfilter.tex where it reads the systems.count files of LilyPond (that contain only the number of note systems that resulted from the included LilyPond code), it fails:
function thirddata.parselilypondfile(name)
-- include all systems (note lines)
-- name is like \LILYTEMP/mainfile-temp-lilypond-21.pdf
logs.report("LILYPOND","name='" .. name .. "'")
syco = 0
for ts in io.lines(string.gsub(name, '%.pdf$', '-systems.count')) do
syco = ts*1
end
for nr = 1, syco do
logs.report("LILYPOND","including system no." .. nr)
context("\\externalfigure[" .. string.gsub(name, '%.pdf$', '-' .. nr) .. "]")
end
end
While I have a single-digit number of systems, it works, but the song of my failing case has 11 lines.
I wouldn't complain if it wouldn't have worked before!
Greetlings, Hraban
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: problem with lua io.lines
2013-08-14 14:43 ` Henning Hraban Ramm
@ 2013-08-14 15:00 ` Hans Hagen
2013-08-14 15:12 ` Hans Hagen
2013-08-14 17:02 ` Henning Hraban Ramm
0 siblings, 2 replies; 8+ messages in thread
From: Hans Hagen @ 2013-08-14 15:00 UTC (permalink / raw)
To: mailing list for ConTeXt users
On 8/14/2013 4:43 PM, Henning Hraban Ramm wrote:
>
> Am 2013-08-14 um 20:15 schrieb Wolfgang Schuster <schuster.wolfgang@gmail.com>:
>
>>> Current beta MkIV seems to have a bug in the Lua function io.lines:
>>>
>>> for myline in io.lines(myfile) do
>>> logs.report(myline)
>>> end
>>>
>>> "myfile" just contains one line with a number, without return/newline.
>>> If the number has more than one digit, I get single digits as "myeline".
>>
>> Do you have a minimal working example?
>
> Minimal working yes, but not minimal failing ;-)
>
> This works:
>
> io.output(io.open("myfile.txt","w"))
> io.write("123")
> io.close()
>
> for myline in io.lines("myfile.txt") do
> print(myline .. "\n")
> end
>
> But in my t-lilyfilter.tex where it reads the systems.count files of LilyPond (that contain only the number of note systems that resulted from the included LilyPond code), it fails:
>
> function thirddata.parselilypondfile(name)
> -- include all systems (note lines)
> -- name is like \LILYTEMP/mainfile-temp-lilypond-21.pdf
> logs.report("LILYPOND","name='" .. name .. "'")
> syco = 0
> for ts in io.lines(string.gsub(name, '%.pdf$', '-systems.count')) do
> syco = ts*1
> end
>
> for nr = 1, syco do
> logs.report("LILYPOND","including system no." .. nr)
> context("\\externalfigure[" .. string.gsub(name, '%.pdf$', '-' .. nr) .. "]")
> end
> end
>
>
> While I have a single-digit number of systems, it works, but the song of my failing case has 11 lines.
>
> I wouldn't complain if it wouldn't have worked before!
well, you probably were lucky before: string.gsub returns multiple
values so io.lines get a second argument that limits the length of what
gets returned
local myfile = "myfile.txt"
for myline in io.lines(myfile,2) do
logs.report("test",myline)
end
so you need:
io.lines((string.gsub(name, '%.pdf$', '-systems.count')))
or
local name = string.gsub(name, '%.pdf$', '-systems.count')
io.lines(name)
or maybe better:
io.lines(file.replacesuffix(name,'-systems.count'))
Hans
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
| www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: problem with lua io.lines
2013-08-14 15:00 ` Hans Hagen
@ 2013-08-14 15:12 ` Hans Hagen
2013-08-14 17:02 ` Henning Hraban Ramm
1 sibling, 0 replies; 8+ messages in thread
From: Hans Hagen @ 2013-08-14 15:12 UTC (permalink / raw)
To: ntg-context
On 8/14/2013 5:00 PM, Hans Hagen wrote:
> On 8/14/2013 4:43 PM, Henning Hraban Ramm wrote:
>>
>> Am 2013-08-14 um 20:15 schrieb Wolfgang Schuster
>> <schuster.wolfgang@gmail.com>:
>>
>>>> Current beta MkIV seems to have a bug in the Lua function io.lines:
btw, it's a lua issue, not related to luatex ...
local myfile = "myfile.txt"
for myline in io.lines(myfile) do
logs.report("test 1",myline)
end
for myline in io.lines(myfile,3) do
logs.report("test 2",myline)
end
for myline in io.lines(myfile,1) do
logs.report("test 2",myline)
end
for myline in io.lines(myfile,0) do
logs.report("test 2",myline)
end
for myline in io.lines(myfile,-1) do
logs.report("test 2",myline)
end
the zero case loops and the last case gives a "memory allocation error:
block too big" so these can be considered buglets in lua
Hans
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
| www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: problem with lua io.lines
2013-08-14 15:00 ` Hans Hagen
2013-08-14 15:12 ` Hans Hagen
@ 2013-08-14 17:02 ` Henning Hraban Ramm
1 sibling, 0 replies; 8+ messages in thread
From: Henning Hraban Ramm @ 2013-08-14 17:02 UTC (permalink / raw)
To: mailing list for ConTeXt users
Am 2013-08-14 um 21:00 schrieb Hans Hagen <pragma@wxs.nl>:
>> for ts in io.lines(string.gsub(name, '%.pdf$', '-systems.count')) do
>> syco = ts*1
>> end
>
> well, you probably were lucky before: string.gsub returns multiple values so io.lines get a second argument that limits the length of what gets returned
Thank you, didn't know that!
> local myfile = "myfile.txt"
>
> for myline in io.lines(myfile,2) do
> logs.report("test",myline)
> end
>
> so you need:
>
> io.lines((string.gsub(name, '%.pdf$', '-systems.count')))
>
> or
>
> local name = string.gsub(name, '%.pdf$', '-systems.count')
>
> io.lines(name)
Great, that works!
> or maybe better:
>
> io.lines(file.replacesuffix(name,'-systems.count'))
No, that doesn't work, because the dot stays, so I get foobar.-systems.count
Greetlings, Hraban
---
http://www.fiee.net/texnique/
http://wiki.contextgarden.net
https://www.cacert.org (I'm an assurer)
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2013-08-14 17:02 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-08-14 14:05 problem with lua io.lines Henning Hraban Ramm
2013-08-14 14:15 ` Hans Hagen
2013-08-14 14:32 ` Henning Hraban Ramm
2013-08-14 14:15 ` Wolfgang Schuster
2013-08-14 14:43 ` Henning Hraban Ramm
2013-08-14 15:00 ` Hans Hagen
2013-08-14 15:12 ` Hans Hagen
2013-08-14 17:02 ` Henning Hraban Ramm
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).