Deleted Added
full compact
0a1,2
> /* $NetBSD: history.c,v 1.47 2014/05/11 01:05:17 christos Exp $ */
>
31,32d32
< *
< * $NetBSD: history.c,v 1.34 2009/09/07 21:24:33 christos Exp $
34a35
> #include "config.h"
35a37
> #if 0
36a39,41
> #else
> __RCSID("$NetBSD: history.c,v 1.47 2014/05/11 01:05:17 christos Exp $");
> #endif
39c44
< __FBSDID("$FreeBSD: head/lib/libedit/history.c 265863 2014-05-11 01:44:11Z eadler $");
---
> __FBSDID("$FreeBSD: head/lib/libedit/history.c 276881 2015-01-09 07:40:56Z bapt $");
42c47
< * hist.c: History access functions
---
> * hist.c: TYPE(History) access functions
44,45d48
< #include "sys.h"
<
54a58
> #include "chartype.h"
56,59c60,63
< typedef int (*history_gfun_t)(ptr_t, HistEvent *);
< typedef int (*history_efun_t)(ptr_t, HistEvent *, const char *);
< typedef void (*history_vfun_t)(ptr_t, HistEvent *);
< typedef int (*history_sfun_t)(ptr_t, HistEvent *, const int);
---
> typedef int (*history_gfun_t)(void *, TYPE(HistEvent) *);
> typedef int (*history_efun_t)(void *, TYPE(HistEvent) *, const Char *);
> typedef void (*history_vfun_t)(void *, TYPE(HistEvent) *);
> typedef int (*history_sfun_t)(void *, TYPE(HistEvent) *, const int);
61,62c65,66
< struct history {
< ptr_t h_ref; /* Argument for history fcns */
---
> struct TYPE(history) {
> void *h_ref; /* Argument for history fcns */
87c91
< #define h_strdup(a) strdup(a)
---
> #define h_strdup(a) Strdup(a)
94c98
< char *str;
---
> Char *str;
99,110c103,114
< private int history_setsize(History *, HistEvent *, int);
< private int history_getsize(History *, HistEvent *);
< private int history_setunique(History *, HistEvent *, int);
< private int history_getunique(History *, HistEvent *);
< private int history_set_fun(History *, History *);
< private int history_load(History *, const char *);
< private int history_save(History *, const char *);
< private int history_save_fp(History *, FILE*);
< private int history_prev_event(History *, HistEvent *, int);
< private int history_next_event(History *, HistEvent *, int);
< private int history_next_string(History *, HistEvent *, const char *);
< private int history_prev_string(History *, HistEvent *, const char *);
---
> private int history_setsize(TYPE(History) *, TYPE(HistEvent) *, int);
> private int history_getsize(TYPE(History) *, TYPE(HistEvent) *);
> private int history_setunique(TYPE(History) *, TYPE(HistEvent) *, int);
> private int history_getunique(TYPE(History) *, TYPE(HistEvent) *);
> private int history_set_fun(TYPE(History) *, TYPE(History) *);
> private int history_load(TYPE(History) *, const char *);
> private int history_save(TYPE(History) *, const char *);
> private int history_save_fp(TYPE(History) *, FILE *);
> private int history_prev_event(TYPE(History) *, TYPE(HistEvent) *, int);
> private int history_next_event(TYPE(History) *, TYPE(HistEvent) *, int);
> private int history_next_string(TYPE(History) *, TYPE(HistEvent) *, const Char *);
> private int history_prev_string(TYPE(History) *, TYPE(HistEvent) *, const Char *);
119c123
< HistEvent ev; /* What we return */
---
> TYPE(HistEvent) ev; /* What we return */
131c135
< int flags; /* History flags */
---
> int flags; /* TYPE(History) flags */
135,144c139,148
< private int history_def_next(ptr_t, HistEvent *);
< private int history_def_first(ptr_t, HistEvent *);
< private int history_def_prev(ptr_t, HistEvent *);
< private int history_def_last(ptr_t, HistEvent *);
< private int history_def_curr(ptr_t, HistEvent *);
< private int history_def_set(ptr_t, HistEvent *, const int);
< private void history_def_clear(ptr_t, HistEvent *);
< private int history_def_enter(ptr_t, HistEvent *, const char *);
< private int history_def_add(ptr_t, HistEvent *, const char *);
< private int history_def_del(ptr_t, HistEvent *, const int);
---
> private int history_def_next(void *, TYPE(HistEvent) *);
> private int history_def_first(void *, TYPE(HistEvent) *);
> private int history_def_prev(void *, TYPE(HistEvent) *);
> private int history_def_last(void *, TYPE(HistEvent) *);
> private int history_def_curr(void *, TYPE(HistEvent) *);
> private int history_def_set(void *, TYPE(HistEvent) *, const int);
> private void history_def_clear(void *, TYPE(HistEvent) *);
> private int history_def_enter(void *, TYPE(HistEvent) *, const Char *);
> private int history_def_add(void *, TYPE(HistEvent) *, const Char *);
> private int history_def_del(void *, TYPE(HistEvent) *, const int);
146,148c150,152
< private int history_def_init(ptr_t *, HistEvent *, int);
< private int history_def_insert(history_t *, HistEvent *, const char *);
< private void history_def_delete(history_t *, HistEvent *, hentry_t *);
---
> private int history_def_init(void **, TYPE(HistEvent) *, int);
> private int history_def_insert(history_t *, TYPE(HistEvent) *, const Char *);
> private void history_def_delete(history_t *, TYPE(HistEvent) *, hentry_t *);
150,151c154,155
< private int history_deldata_nth(history_t *, HistEvent *, int, void **);
< private int history_set_nth(ptr_t, HistEvent *, int);
---
> private int history_deldata_nth(history_t *, TYPE(HistEvent) *, int, void **);
> private int history_set_nth(void *, TYPE(HistEvent) *, int);
169,185c173,189
< static const char *const he_errlist[] = {
< "OK",
< "unknown error",
< "malloc() failed",
< "first event not found",
< "last event not found",
< "empty list",
< "no next event",
< "no previous event",
< "current event is invalid",
< "event not found",
< "can't read history from file",
< "can't write history",
< "required parameter(s) not supplied",
< "history size negative",
< "function not allowed with other history-functions-set the default",
< "bad parameters"
---
> static const Char *const he_errlist[] = {
> STR("OK"),
> STR("unknown error"),
> STR("malloc() failed"),
> STR("first event not found"),
> STR("last event not found"),
> STR("empty list"),
> STR("no next event"),
> STR("no previous event"),
> STR("current event is invalid"),
> STR("event not found"),
> STR("can't read history from file"),
> STR("can't write history"),
> STR("required parameter(s) not supplied"),
> STR("history size negative"),
> STR("function not allowed with other history-functions-set the default"),
> STR("bad parameters")
209c213
< history_def_first(ptr_t p, HistEvent *ev)
---
> history_def_first(void *p, TYPE(HistEvent) *ev)
218c222
< return (-1);
---
> return -1;
221c225
< return (0);
---
> return 0;
229c233
< history_def_last(ptr_t p, HistEvent *ev)
---
> history_def_last(void *p, TYPE(HistEvent) *ev)
238c242
< return (-1);
---
> return -1;
241c245
< return (0);
---
> return 0;
249c253
< history_def_next(ptr_t p, HistEvent *ev)
---
> history_def_next(void *p, TYPE(HistEvent) *ev)
255c259
< return (-1);
---
> return -1;
260c264
< return (-1);
---
> return -1;
266c270
< return (0);
---
> return 0;
274c278
< history_def_prev(ptr_t p, HistEvent *ev)
---
> history_def_prev(void *p, TYPE(HistEvent) *ev)
281c285
< return (-1);
---
> return -1;
286c290
< return (-1);
---
> return -1;
292c296
< return (0);
---
> return 0;
300c304
< history_def_curr(ptr_t p, HistEvent *ev)
---
> history_def_curr(void *p, TYPE(HistEvent) *ev)
309c313
< return (-1);
---
> return -1;
312c316
< return (0);
---
> return 0;
321c325
< history_def_set(ptr_t p, HistEvent *ev, const int n)
---
> history_def_set(void *p, TYPE(HistEvent) *ev, const int n)
327c331
< return (-1);
---
> return -1;
337c341
< return (-1);
---
> return -1;
339c343
< return (0);
---
> return 0;
348c352
< history_set_nth(ptr_t p, HistEvent *ev, int n)
---
> history_set_nth(void *p, TYPE(HistEvent) *ev, int n)
354c358
< return (-1);
---
> return -1;
362c366
< return (-1);
---
> return -1;
364c368
< return (0);
---
> return 0;
372c376
< history_def_add(ptr_t p, HistEvent *ev, const char *str)
---
> history_def_add(void *p, TYPE(HistEvent) *ev, const Char *str)
376c380
< char *s;
---
> Char *s;
380,382c384,386
< return (history_def_enter(p, ev, str));
< len = strlen(evp->str) + strlen(str) + 1;
< s = (char *) h_malloc(len);
---
> return history_def_enter(p, ev, str);
> len = Strlen(evp->str) + Strlen(str) + 1;
> s = h_malloc(len * sizeof(*s));
385c389
< return (-1);
---
> return -1;
387,389c391,394
< (void) strlcpy(s, h->cursor->ev.str, len);
< (void) strlcat(s, str, len);
< h_free((ptr_t)evp->str);
---
> (void) Strncpy(s, h->cursor->ev.str, len);
> s[len - 1] = '\0';
> (void) Strncat(s, str, len - Strlen(s) - 1);
> h_free(evp->str);
392c397
< return (0);
---
> return 0;
397c402
< history_deldata_nth(history_t *h, HistEvent *ev,
---
> history_deldata_nth(history_t *h, TYPE(HistEvent) *ev,
401c406
< return (-1);
---
> return -1;
404,405c409,410
< return (0);
< ev->str = strdup(h->cursor->ev.str);
---
> return 0;
> ev->str = Strdup(h->cursor->ev.str);
410c415
< return (0);
---
> return 0;
419c424
< history_def_del(ptr_t p, HistEvent *ev __unused,
---
> history_def_del(void *p, TYPE(HistEvent) *ev __attribute__((__unused__)),
424,425c429,430
< return (-1);
< ev->str = strdup(h->cursor->ev.str);
---
> return -1;
> ev->str = Strdup(h->cursor->ev.str);
428c433
< return (0);
---
> return 0;
438c443
< HistEvent *ev __unused, hentry_t *hp)
---
> TYPE(HistEvent) *ev __attribute__((__unused__)), hentry_t *hp)
450c455
< h_free((ptr_t) evp->str);
---
> h_free(evp->str);
460c465
< history_def_insert(history_t *h, HistEvent *ev, const char *str)
---
> history_def_insert(history_t *h, TYPE(HistEvent) *ev, const Char *str)
461a467
> hentry_t *c;
463,464c469,470
< h->cursor = (hentry_t *) h_malloc(sizeof(hentry_t));
< if (h->cursor == NULL)
---
> c = h_malloc(sizeof(*c));
> if (c == NULL)
466,467c472,473
< if ((h->cursor->ev.str = h_strdup(str)) == NULL) {
< h_free((ptr_t)h->cursor);
---
> if ((c->ev.str = h_strdup(str)) == NULL) {
> h_free(c);
470,475c476,481
< h->cursor->data = NULL;
< h->cursor->ev.num = ++h->eventid;
< h->cursor->next = h->list.next;
< h->cursor->prev = &h->list;
< h->list.next->prev = h->cursor;
< h->list.next = h->cursor;
---
> c->data = NULL;
> c->ev.num = ++h->eventid;
> c->next = h->list.next;
> c->prev = &h->list;
> h->list.next->prev = c;
> h->list.next = c;
476a483
> h->cursor = c;
478,479c485,486
< *ev = h->cursor->ev;
< return (0);
---
> *ev = c->ev;
> return 0;
482c489
< return (-1);
---
> return -1;
490c497
< history_def_enter(ptr_t p, HistEvent *ev, const char *str)
---
> history_def_enter(void *p, TYPE(HistEvent) *ev, const Char *str)
495,496c502,503
< strcmp(h->list.next->ev.str, str) == 0)
< return (0);
---
> Strcmp(h->list.next->ev.str, str) == 0)
> return 0;
499c506
< return (-1); /* error, keep error message */
---
> return -1; /* error, keep error message */
508c515
< return (1);
---
> return 1;
517c524
< history_def_init(ptr_t *p, HistEvent *ev __unused, int n)
---
> history_def_init(void **p, TYPE(HistEvent) *ev __attribute__((__unused__)), int n)
519c526
< history_t *h = (history_t *) h_malloc(sizeof(history_t));
---
> history_t *h = (history_t *) h_malloc(sizeof(*h));
533c540
< *p = (ptr_t) h;
---
> *p = h;
542c549
< history_def_clear(ptr_t p, HistEvent *ev)
---
> history_def_clear(void *p, TYPE(HistEvent) *ev)
547a555
> h->cursor = &h->list;
560,561c568,569
< public History *
< history_init(void)
---
> public TYPE(History) *
> FUN(history,init)(void)
563,564c571,572
< HistEvent ev;
< History *h = (History *) h_malloc(sizeof(History));
---
> TYPE(HistEvent) ev;
> TYPE(History) *h = (TYPE(History) *) h_malloc(sizeof(*h));
569c577
< h_free((ptr_t)h);
---
> h_free(h);
584c592
< return (h);
---
> return h;
592c600
< history_end(History *h)
---
> FUN(history,end)(TYPE(History) *h)
594c602
< HistEvent ev;
---
> TYPE(HistEvent) ev;
608c616
< history_setsize(History *h, HistEvent *ev, int num)
---
> history_setsize(TYPE(History) *h, TYPE(HistEvent) *ev, int num)
613c621
< return (-1);
---
> return -1;
617c625
< return (-1);
---
> return -1;
620c628
< return (0);
---
> return 0;
628c636
< history_getsize(History *h, HistEvent *ev)
---
> history_getsize(TYPE(History) *h, TYPE(HistEvent) *ev)
632c640
< return (-1);
---
> return -1;
637c645
< return (-1);
---
> return -1;
639c647
< return (0);
---
> return 0;
647c655
< history_setunique(History *h, HistEvent *ev, int uni)
---
> history_setunique(TYPE(History) *h, TYPE(HistEvent) *ev, int uni)
652c660
< return (-1);
---
> return -1;
655c663
< return (0);
---
> return 0;
663c671
< history_getunique(History *h, HistEvent *ev)
---
> history_getunique(TYPE(History) *h, TYPE(HistEvent) *ev)
667c675
< return (-1);
---
> return -1;
670c678
< return (0);
---
> return 0;
678c686
< history_set_fun(History *h, History *nh)
---
> history_set_fun(TYPE(History) *h, TYPE(History) *nh)
680c688
< HistEvent ev;
---
> TYPE(HistEvent) ev;
687c695,696
< history_def_init(&h->h_ref, &ev, 0);
---
> if (history_def_init(&h->h_ref, &ev, 0) == -1)
> return -1;
699c708
< return (-1);
---
> return -1;
716c725
< return (0);
---
> return 0;
721c730
< * History load function
---
> * TYPE(History) load function
724c733
< history_load(History *h, const char *fname)
---
> history_load(TYPE(History) *h, const char *fname)
731c740,743
< HistEvent ev;
---
> TYPE(HistEvent) ev;
> #ifdef WIDECHAR
> static ct_buffer_t conv;
> #endif
734c746
< return (i);
---
> return i;
742c754
< ptr = h_malloc(max_size = 1024);
---
> ptr = h_malloc((max_size = 1024) * sizeof(*ptr));
755,756c767,768
< max_size = (sz + 1024) & ~1023;
< nptr = h_realloc(ptr, max_size);
---
> max_size = (sz + 1024) & (size_t)~1023;
> nptr = h_realloc(ptr, max_size * sizeof(*ptr));
765c777
< if (HENTER(h, &ev, ptr) == -1) {
---
> if (HENTER(h, &ev, ct_decode_string(ptr, &conv)) == -1) {
771c783
< h_free((ptr_t)ptr);
---
> h_free(ptr);
774c786
< return (i);
---
> return i;
776a789
>
778c791
< * History save with open FILE*
---
> * TYPE(History) save function
780c793,794
< private int history_save_fp(History *h, FILE* fp)
---
> private int
> history_save_fp(TYPE(History) *h, FILE *fp)
782c796
< HistEvent ev;
---
> TYPE(HistEvent) ev;
785a800,803
> const char *str;
> #ifdef WIDECHAR
> static ct_buffer_t conv;
> #endif
791c809
< ptr = h_malloc(max_size = 1024);
---
> ptr = h_malloc((max_size = 1024) * sizeof(*ptr));
797c815,816
< len = strlen(ev.str) * 4;
---
> str = ct_encode_string(ev.str, &conv);
> len = strlen(str) * 4;
800,801c819,820
< max_size = (len + 1024) & ~1023;
< nptr = h_realloc(ptr, max_size);
---
> max_size = (len + 1024) & (size_t)~1023;
> nptr = h_realloc(ptr, max_size * sizeof(*ptr));
808c827
< (void) strvis(ptr, ev.str, VIS_WHITE);
---
> (void) strvis(ptr, str, VIS_WHITE);
812c831
< h_free((ptr_t)ptr);
---
> h_free(ptr);
814,815c833
< return (i);
<
---
> return i;
820c838
< * History save function
---
> * History save function
823c841
< history_save(History *h, const char *fname)
---
> history_save(TYPE(History) *h, const char *fname)
825,826c843,844
< FILE *fp;
< int i;
---
> FILE *fp;
> int i;
828,829c846,847
< if ((fp = fopen(fname, "w")) == NULL)
< return (-1);
---
> if ((fp = fopen(fname, "w")) == NULL)
> return -1;
831c849
< i = history_save_fp(h, fp);
---
> i = history_save_fp(h, fp);
833,835c851,852
< done:
< (void) fclose(fp);
< return (i);
---
> (void) fclose(fp);
> return i;
843c860
< history_prev_event(History *h, HistEvent *ev, int num)
---
> history_prev_event(TYPE(History) *h, TYPE(HistEvent) *ev, int num)
849c866
< return (0);
---
> return 0;
852c869
< return (-1);
---
> return -1;
857c874
< history_next_evdata(History *h, HistEvent *ev, int num, void **d)
---
> history_next_evdata(TYPE(History) *h, TYPE(HistEvent) *ev, int num, void **d)
862c879
< if (num-- <= 0) {
---
> if (ev->num == num) {
865c882
< return (0);
---
> return 0;
869c886
< return (-1);
---
> return -1;
877c894
< history_next_event(History *h, HistEvent *ev, int num)
---
> history_next_event(TYPE(History) *h, TYPE(HistEvent) *ev, int num)
883c900
< return (0);
---
> return 0;
886c903
< return (-1);
---
> return -1;
894c911
< history_prev_string(History *h, HistEvent *ev, const char *str)
---
> history_prev_string(TYPE(History) *h, TYPE(HistEvent) *ev, const Char *str)
896c913
< size_t len = strlen(str);
---
> size_t len = Strlen(str);
900,901c917,918
< if (strncmp(str, ev->str, len) == 0)
< return (0);
---
> if (Strncmp(str, ev->str, len) == 0)
> return 0;
904c921
< return (-1);
---
> return -1;
912c929
< history_next_string(History *h, HistEvent *ev, const char *str)
---
> history_next_string(TYPE(History) *h, TYPE(HistEvent) *ev, const Char *str)
914c931
< size_t len = strlen(str);
---
> size_t len = Strlen(str);
918,919c935,936
< if (strncmp(str, ev->str, len) == 0)
< return (0);
---
> if (Strncmp(str, ev->str, len) == 0)
> return 0;
922c939
< return (-1);
---
> return -1;
930c947
< history(History *h, HistEvent *ev, int fun, ...)
---
> FUNW(history)(TYPE(History) *h, TYPE(HistEvent) *ev, int fun, ...)
933c950
< const char *str;
---
> const Char *str;
958c975
< str = va_arg(va, const char *);
---
> str = va_arg(va, const Char *);
967c984
< str = va_arg(va, const char *);
---
> str = va_arg(va, const Char *);
973c990
< str = va_arg(va, const char *);
---
> str = va_arg(va, const Char *);
1020c1037
< retval = history_save_fp(h, va_arg(va, FILE*));
---
> retval = history_save_fp(h, va_arg(va, FILE *));
1022c1039
< he_seterrev(ev, _HE_HIST_WRITE);
---
> he_seterrev(ev, _HE_HIST_WRITE);
1034c1051
< retval = history_prev_string(h, ev, va_arg(va, const char *));
---
> retval = history_prev_string(h, ev, va_arg(va, const Char *));
1038c1055
< retval = history_next_string(h, ev, va_arg(va, const char *));
---
> retval = history_next_string(h, ev, va_arg(va, const Char *));
1043c1060
< History hf;
---
> TYPE(History) hf;
1045c1062
< hf.h_ref = va_arg(va, ptr_t);
---
> hf.h_ref = va_arg(va, void *);
1064c1081
< history_end(h);
---
> FUN(history,end)(h);
1086c1103
< const char *line = va_arg(va, const char *);
---
> const Char *line = va_arg(va, const Char *);
1088,1089c1105,1106
< const char *s;
< if(!line || !(s = strdup(line))) {
---
> const Char *s;
> if(!line || !(s = Strdup(line))) {