static intissel(size_t id){ for (int i = 0;i < selidsize;i++) if (selid[i] == id) return 1; return 0;} static voidprintselected(unsigned int state){ for (int i = 0; i < selidsize; i++) { if (selid[i] != -1 && (!sel || sel->id != selid[i])) { printitem(&items[selid[i]]); } } printcurrent(state);} static voidselsel(void){ if (!sel) return; if (issel(sel->id)) { for (int i = 0; i < selidsize; i++) if (selid[i] == sel->id) selid[i] = -1; } else { for (int i = 0; i < selidsize; i++) if (selid[i] == -1) { selid[i] = sel->id; return; } selidsize++; selid = realloc(selid, (selidsize + 1) * sizeof(int)); selid[selidsize - 1] = sel->id; }}
static int
issel(size_t id)
{
for (int i = 0;i < selidsize;i++)
if (selid[i] == id)
return 1;
return 0;
}
static void
printselected(unsigned int state)
{
for (int i = 0; i < selidsize; i++) {
if (selid[i] != -1 && (!sel || sel->id != selid[i])) {
printitem(&items[selid[i]]);
}
}
printcurrent(state);
}
static void
selsel(void)
{
if (!sel)
return;
if (issel(sel->id)) {
for (int i = 0; i < selidsize; i++)
if (selid[i] == sel->id)
selid[i] = -1;
} else {
for (int i = 0; i < selidsize; i++)
if (selid[i] == -1) {
selid[i] = sel->id;
return;
}
selidsize++;
selid = realloc(selid, (selidsize + 1) * sizeof(int));
selid[selidsize - 1] = sel->id;
}
}