[NTG-context] \restorecounter ignores first save

Wolfgang Schuster schuster.wolfgang at gmail.com
Sat Aug 27 15:41:51 CEST 2016


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


More information about the ntg-context mailing list