Lines Matching refs:ev

114 #define	HNEXT(h, ev)		(*(h)->h_next)((h)->h_ref, ev)
115 #define HFIRST(h, ev) (*(h)->h_first)((h)->h_ref, ev)
116 #define HPREV(h, ev) (*(h)->h_prev)((h)->h_ref, ev)
117 #define HLAST(h, ev) (*(h)->h_last)((h)->h_ref, ev)
118 #define HCURR(h, ev) (*(h)->h_curr)((h)->h_ref, ev)
119 #define HSET(h, ev, n) (*(h)->h_set)((h)->h_ref, ev, n)
120 #define HCLEAR(h, ev) (*(h)->h_clear)((h)->h_ref, ev)
121 #define HENTER(h, ev, str) (*(h)->h_enter)((h)->h_ref, ev, str)
122 #define HADD(h, ev, str) (*(h)->h_add)((h)->h_ref, ev, str)
123 #define HDEL(h, ev, n) (*(h)->h_del)((h)->h_ref, ev, n)
158 TYPE(HistEvent) ev; /* What we return */
248 history_def_first(void *p, TYPE(HistEvent) *ev)
254 *ev = h->cursor->ev;
256 he_seterrev(ev, _HE_FIRST_NOTFOUND);
268 history_def_last(void *p, TYPE(HistEvent) *ev)
274 *ev = h->cursor->ev;
276 he_seterrev(ev, _HE_LAST_NOTFOUND);
288 history_def_next(void *p, TYPE(HistEvent) *ev)
293 he_seterrev(ev, _HE_EMPTY_LIST);
298 he_seterrev(ev, _HE_END_REACHED);
303 *ev = h->cursor->ev;
313 history_def_prev(void *p, TYPE(HistEvent) *ev)
318 he_seterrev(ev,
324 he_seterrev(ev, _HE_START_REACHED);
329 *ev = h->cursor->ev;
339 history_def_curr(void *p, TYPE(HistEvent) *ev)
344 *ev = h->cursor->ev;
346 he_seterrev(ev,
360 history_def_set(void *p, TYPE(HistEvent) *ev, const int n)
365 he_seterrev(ev, _HE_EMPTY_LIST);
368 if (h->cursor == &h->list || h->cursor->ev.num != n) {
371 if (h->cursor->ev.num == n)
375 he_seterrev(ev, _HE_NOT_FOUND);
387 history_set_nth(void *p, TYPE(HistEvent) *ev, int n)
392 he_seterrev(ev, _HE_EMPTY_LIST);
400 he_seterrev(ev, _HE_NOT_FOUND);
411 history_def_add(void *p, TYPE(HistEvent) *ev, const Char *str)
416 HistEventPrivate *evp = (void *)&h->cursor->ev;
419 return history_def_enter(p, ev, str);
425 he_seterrev(ev, _HE_MALLOC_FAILED);
433 *ev = h->cursor->ev;
439 history_deldata_nth(history_t *h, TYPE(HistEvent) *ev,
442 if (history_set_nth(h, ev, num) != 0)
447 ev->str = Strdup(h->cursor->ev.str);
448 ev->num = h->cursor->ev.num;
451 history_def_delete(h, ev, h->cursor);
461 history_def_del(void *p, TYPE(HistEvent) *ev __attribute__((__unused__)),
465 if (history_def_set(h, ev, num) != 0)
467 ev->str = Strdup(h->cursor->ev.str);
468 ev->num = h->cursor->ev.num;
469 history_def_delete(h, ev, h->cursor);
480 TYPE(HistEvent) *ev __attribute__((__unused__)), hentry_t *hp)
482 HistEventPrivate *evp = (void *)&hp->ev;
502 history_def_insert(history_t *h, TYPE(HistEvent) *ev, const Char *str)
509 if ((c->ev.str = h_strdup(str)) == NULL) {
514 c->ev.num = ++h->eventid;
522 *ev = c->ev;
525 he_seterrev(ev, _HE_MALLOC_FAILED);
534 history_def_enter(void *p, TYPE(HistEvent) *ev, const Char *str)
539 Strcmp(h->list.next->ev.str, str) == 0)
542 if (history_def_insert(h, ev, str) == -1)
550 history_def_delete(h, ev, h->list.prev);
561 history_def_init(void **p, TYPE(HistEvent) *ev __attribute__((__unused__)), int n)
573 h->list.ev.str = NULL;
574 h->list.ev.num = 0;
586 history_def_clear(void *p, TYPE(HistEvent) *ev)
591 history_def_delete(h, ev, h->list.prev);
608 TYPE(HistEvent) ev;
613 if (history_def_init(&h->h_ref, &ev, 0) == -1) {
639 TYPE(HistEvent) ev;
642 history_def_clear(h->h_ref, &ev);
653 history_setsize(TYPE(History) *h, TYPE(HistEvent) *ev, int num)
657 he_seterrev(ev, _HE_NOT_ALLOWED);
661 he_seterrev(ev, _HE_BAD_PARAM);
673 history_getsize(TYPE(History) *h, TYPE(HistEvent) *ev)
676 he_seterrev(ev, _HE_NOT_ALLOWED);
679 ev->num = history_def_getsize(h->h_ref);
680 if (ev->num < -1) {
681 he_seterrev(ev, _HE_SIZE_NEGATIVE);
692 history_setunique(TYPE(History) *h, TYPE(HistEvent) *ev, int uni)
696 he_seterrev(ev, _HE_NOT_ALLOWED);
708 history_getunique(TYPE(History) *h, TYPE(HistEvent) *ev)
711 he_seterrev(ev, _HE_NOT_ALLOWED);
714 ev->num = history_def_getunique(h->h_ref);
725 TYPE(HistEvent) ev;
732 if (history_def_init(&h->h_ref, &ev, 0) == -1)
748 history_def_clear(h->h_ref, &ev);
779 TYPE(HistEvent) ev;
816 if (HENTER(h, &ev, decode_result) == -1) {
836 TYPE(HistEvent) ev;
853 for (retval = HFIRST(h, &ev); retval != -1 && nelem-- > 0;
854 retval = HNEXT(h, &ev))
860 retval = HLAST(h, &ev);
862 for (i = 0; retval != -1; retval = HPREV(h, &ev), i++) {
863 str = ct_encode_string(ev.str, &conv);
908 history_prev_event(TYPE(History) *h, TYPE(HistEvent) *ev, int num)
912 for (retval = HCURR(h, ev); retval != -1; retval = HPREV(h, ev))
913 if (ev->num == num)
916 he_seterrev(ev, _HE_NOT_FOUND);
922 history_next_evdata(TYPE(History) *h, TYPE(HistEvent) *ev, int num, void **d)
926 for (retval = HCURR(h, ev); retval != -1; retval = HPREV(h, ev))
927 if (ev->num == num) {
933 he_seterrev(ev, _HE_NOT_FOUND);
942 history_next_event(TYPE(History) *h, TYPE(HistEvent) *ev, int num)
946 for (retval = HCURR(h, ev); retval != -1; retval = HNEXT(h, ev))
947 if (ev->num == num)
950 he_seterrev(ev, _HE_NOT_FOUND);
959 history_prev_string(TYPE(History) *h, TYPE(HistEvent) *ev, const Char *str)
964 for (retval = HCURR(h, ev); retval != -1; retval = HNEXT(h, ev))
965 if (Strncmp(str, ev->str, len) == 0)
968 he_seterrev(ev, _HE_NOT_FOUND);
977 history_next_string(TYPE(History) *h, TYPE(HistEvent) *ev, const Char *str)
982 for (retval = HCURR(h, ev); retval != -1; retval = HPREV(h, ev))
983 if (Strncmp(str, ev->str, len) == 0)
986 he_seterrev(ev, _HE_NOT_FOUND);
995 FUNW(history)(TYPE(History) *h, TYPE(HistEvent) *ev, int fun, ...)
1003 he_seterrev(ev, _HE_OK);
1007 retval = history_getsize(h, ev);
1011 retval = history_setsize(h, ev, va_arg(va, int));
1015 retval = history_getunique(h, ev);
1019 retval = history_setunique(h, ev, va_arg(va, int));
1024 retval = HADD(h, ev, str);
1028 retval = HDEL(h, ev, va_arg(va, const int));
1033 if ((retval = HENTER(h, ev, str)) != -1)
1034 h->h_ent = ev->num;
1039 if ((retval = HSET(h, ev, h->h_ent)) != -1)
1040 retval = HADD(h, ev, str);
1044 retval = HFIRST(h, ev);
1048 retval = HNEXT(h, ev);
1052 retval = HLAST(h, ev);
1056 retval = HPREV(h, ev);
1060 retval = HCURR(h, ev);
1064 retval = HSET(h, ev, va_arg(va, const int));
1068 HCLEAR(h, ev);
1075 he_seterrev(ev, _HE_HIST_READ);
1081 he_seterrev(ev, _HE_HIST_WRITE);
1087 he_seterrev(ev, _HE_HIST_WRITE);
1095 he_seterrev(ev, _HE_HIST_WRITE);
1100 retval = history_prev_event(h, ev, va_arg(va, int));
1104 retval = history_next_event(h, ev, va_arg(va, int));
1108 retval = history_prev_string(h, ev, va_arg(va, const Char *));
1112 retval = history_next_string(h, ev, va_arg(va, const Char *));
1133 he_seterrev(ev, _HE_PARAM_MISSING);
1146 retval = history_next_evdata(h, ev, num, d);
1154 retval = history_deldata_nth((history_t *)h->h_ref, ev, num, d);
1167 ((history_t *)h->h_ref)->cursor->ev.str = s;
1175 he_seterrev(ev, _HE_UNKNOWN);