Re: [NTG-context] \restorecounter ignores first save

2016-08-28 Thread Hans Hagen

On 8/27/2016 3:41 PM, Wolfgang Schuster wrote:

Hi Hans,

the save/restore state for the counter in the example is ignored.

 begin example
\enabletrackers[structures.counters]

\definecounter[test]

\starttext

\incrementcounter[test]
\convertedcounter[test]

\dorecurse{10}
  {\savecounter[test]
   \incrementcounter[test]
   \convertedcounter[test]
   \restorecounter[test]
   \par}

\stoptext
 end example


The problem is the check for the table size in the counters.restore
function because after the first save the size of the table is 1:

function counters.restore(name)
local cd = counterdata[name]
if not cd then
report_counters("invalid restore, no counter %a",name)
return
end
local saved = cd.saved
if not saved then
-- is ok
elseif #saved > 1 then


should be > 0


cd.data = remove(saved)
else
report_counters("restore without save for counter %a",name)
end
end



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
___



--

-
  Hans Hagen | PRAGMA ADE
  Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
   tel: 038 477 53 69 | www.pragma-ade.nl | 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
___

[NTG-context] \restorecounter ignores first save

2016-08-27 Thread Wolfgang Schuster

Hi Hans,

the save/restore state for the counter in the example is ignored.

 begin example
\enabletrackers[structures.counters]

\definecounter[test]

\starttext

\incrementcounter[test]
\convertedcounter[test]

\dorecurse{10}
  {\savecounter[test]
   \incrementcounter[test]
   \convertedcounter[test]
   \restorecounter[test]
   \par}

\stoptext
 end example


The problem is the check for the table size in the counters.restore 
function because after the first save the size of the table is 1:


function counters.restore(name)
local cd = counterdata[name]
if not cd then
report_counters("invalid restore, no counter %a",name)
return
end
local saved = cd.saved
if not saved then
-- is ok
elseif #saved > 1 then
cd.data = remove(saved)
else
report_counters("restore without save for counter %a",name)
end
end



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
___