H_NEXT
retval = history(hist, &he, H_NEXT);
direction = first < last ? H_PREV : H_NEXT;
#define HIST_NEXT(el) HIST_FUN(el, H_NEXT, NULL)
case H_NEXT:
while (history(h, &ev, H_NEXT) == 0);
if (history(h, &ev, direction < 0 ? H_NEXT:H_PREV) != 0)
if (history(h, &ev, (pos < 0) ? H_PREV : H_NEXT) != 0)