+ // Yes. skip until start.. Rounding off is deliberate!
+ min = (start-p) / no_left;
+ p += no_left * min;
+
+ // update positions in each set..
+ std::list<int>::iterator psit = pos.begin();
+ for (psit = pos.begin(); psit != pos.end(); psit++)
+ *psit += min;
+ break;
+ }
+ // skip on each set.. before "present range"..
+ p = p + skip;
+
+ std::cout << "\nSKIP min=" << min << " no_left=" << no_left << "\n\n";
+
+ std::list<int>::iterator psit = pos.begin();
+ for (psit = pos.begin(); psit != pos.end(); psit++)
+ *psit += min;
+
+ omin = min; // update so we consider next class (with higher count)
+ }
+#endif
+ int fetched = 0;
+ bool more = true;
+ while (more)
+ {
+ more = false;
+ std::list<int>::iterator psit = pos.begin();
+ std::list<int>::iterator esit = inside_pos.begin();
+ bsit = m_backend_sets.begin();
+
+ for (; bsit != m_backend_sets.end(); psit++,esit++,bsit++)
+ {
+ if (fetched >= number)
+ {
+ more = false;
+ break;
+ }
+ if (*psit <= bsit->m_count)