File: blockvector.cc

package info (click to toggle)
xd 5.00.03-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 708 kB
  • sloc: cpp: 1,852; fortran: 161; makefile: 107; sh: 36; ansic: 30
file content (23 lines) | stat: -rw-r--r-- 615 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "selector.ih"

    // by showalternatives.cc

vector<Selector::Block> Selector::blockVector(size_t nBlocks)
{
    vector<Block> blocks(nBlocks, {0, 0, "-+" });

    blocks.front().prompt = "+";
    blocks.front().end = d_blockSize;

    for (size_t idx = 1, end = blocks.size();  idx != end; ++idx)
        set(blocks[idx], blocks[idx - 1].end);

    blocks.back().prompt = "-";

    if (blocks.back().end > d_index)      // back may not exceed 
        blocks.back().end = d_index;      // nAlternatives

    set(*(blocks.rbegin() + 1), blocks.back()); // inspect the last two sizes

    return blocks;
}