On Fri, 14 Sep 2012, Wolfgang Schuster wrote: > > Am 14.09.2012 um 00:36 schrieb Aditya Mahajan : > >> I have been able to isolate the bug to the update on 2012.07.09; specifically to this commit. >> >> http://repo.or.cz/w/context.git/blobdiff/6f124794f7dc253f8b83f2517c26ce17e50d66ff..refs/heads/origin:/tex/context/base/strc-num.mkiv >> >> If I replace the current version of strc-num.mkiv with the version from 2012.07.09: >> http://repo.or.cz/w/context.git/blob_plain/6f124794f7dc253f8b83f2517c26ce17e50d66ff:/tex/context/base/strc-num.mkiv >> >> then the numbering is correct. >> >> However, I cannot figure out what is causing the bug in that change. > > Part of the problem is this code block: > > \def\strc_counters_check_setup#1% does it have to happen here? > {% this can be done at the lua end / a bit messy here ... todo ... > \ifcsname\??counter#1\c!number\endcsname > \doifelsevalue {\??counter#1\c!number}{#1} {\letbeundefined{\??counter#1\c!number}}% > {\doifvaluenothing{\??counter#1\c!number} {\letbeundefined{\??counter#1\c!number}}}% > \fi > \ifcsname\??counter#1\c!number\endcsname > % it's a clone > \else > \edef\currentcounterlevel{\thenamedcounterlevel{#1}}% > \edef\p_start{\counterparameter{#1}\c!start}% > \ctxcommand{checkcountersetup("#1",\currentcounterlevel,\ifx\p_start\empty0\else\number\p_start\fi,"\counterparameter{#1}\c!state")}% > \fi} > > ConTeXt uses \p_start to store the current value of the start parameter. > When you set now a value for start in \setuppagenumber the value is kept > in \p_start (because there are no groups). When you start now the itemize > environment the same code is loaded and the start parameter (which hasn’t > been set yet) expands to a very stupid default value which is by another > helper function. > > \def\strc_counter_setup_using_parameter#1#2% name \someparameter > {\edef\p_start{#2\c!start}% > \setupcounter > [#1] > [ \c!start=\ifx\p_start\empty0\else\number\p_start\fi, > ... > \c!numbersegments=#2\c!numbersegments]} > > > As you can see here the start parameter expands to \p_start when it isn’t empty > what is the case here and because of this you get a wrong value for the item numbers. Thanks for the diagnosis. What will be a good way to fix this? I think that \expanded{\setupcounter[#1][\c!start=\ifx\p_start\empty0\else\number\p_start\fi.,...]} should work (but I haven't tested it yet). Aditya