Is it correct that it should look for markers on the current page and if page boundary is current page then stop there. If boundary is page-sequence then keep going backwards on each page until a marker is found or reaches the start of the page-sequence and similarly for the document boundary.
I'm trying to work out exactly how the markers should work.
For the first starting within page and last ending I am fine with. First including carry-over seems okay.
Last starting within page is a bit confusing. A statement  in the spec suggests that it shouldn't really find the last starting in the page but rather find the closest node to the root in the area tree that is the last starting area. Another statement  seems confusing but maybe this is if it is searching previous pages.
So if this was in a page then block "a" would be the last starting in the page.
-----start------ ... <block id="a"> <block id="b"> </block> -------pos1------------- <block id="c"> </block> </block> --------end-----------
But if there is a column break in pos1 the last starting in page will become block "c" as block "a" is not starting in that part of the area tree.
I haven't looked at markers too closely, but I would tend to think that, in the first case, block c is the last-starting-within-page. Blocks a, b and c all qualify; they all have an is-first trait of "true". So which one follows all others in the area tree, *in pre-order traversal order*? Pre-order traversal gives us a, b, c. So c "follows in the area tree any other similarly constrained area.
Then the column break would have no impact on the selection.
It seems to me that the "hierarchy" is not the same as the area tree or fo tree hierarchy. It is a unique hierarchy constructed by applying the constraints on the qualifying areas. The boundary conditions impose absolute constraints - violate one and you are out. But the other conditions are not absolute, and they, along with actual page for multi-page boundaries, are used to construct the hierarchy.
If this is the case then there are two possible cases when starting an area: isfirst and other. When finishing an area there are: islast, (had) isfirst and both. This will supply enough information to add only the needed markers to the area tree. These markers can then be kept for later retrieval.
 "Every area in the hierarchy is considered preferential to, or "better" than, any area below it in the hierarchy."
 "If there is no such area, then the last qualifying area in the containing page is better than any other area."
-- Peter B. West [EMAIL PROTECTED] http://www.powerup.com.au/~pbwest/ "Lord, to whom shall we go?"
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]