kolibrios-gitea/programs/cmm/lib/patterns/history.h

46 lines
625 B
C
Raw Normal View History

#include "..\lib\collection.h"
struct _history {
collection items;
int active;
void clear();
int add();
int back();
int forward();
dword current();
};
int _history::add(dword in)
{
if (!strcmp(in, items.get(active-1))) return 0;
items.count = active;
items.add(in);
active++;
return 1;
}
int _history::back()
{
if (active==1) return 0;
active--;
return 1;
}
int _history::forward()
{
if (active==items.count) return 0;
active++;
return 1;
}
dword _history::current()
{
return items.get(active-1);
}
:void _history::clear()
{
items.drop();
active=0;
}